Skip to content

Testing Extract after pull request by yblatti #8

Testing Extract after pull request by yblatti

Testing Extract after pull request by yblatti #8

Workflow file for this run

name: build-extract-actions
run-name: Testing Extract after pull request by ${{ github.actor }}
on:
workflow_dispatch : ~
pull_request:
types: [opened, reopened]
jobs:
build-extract:
runs-on: ubuntu-latest
steps:
- name: Download the code
uses: actions/checkout@v4
- name: Install JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: maven
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
cache-dependency-path: extract/package.json
- name: Create folder for Yarn executable
run: mkdir -p /home/runner/work/extract/extract/extract/.yarn/releases
working-directory: /home/runner/work/extract/extract/extract
- name: Enable Corepack
run: corepack enable
working-directory: /home/runner/work/extract/extract/extract
- name: Install Yarn
run: yarn set version stable
working-directory: /home/runner/work/extract/extract/extract
- name: Make dependencies script executable
run: chmod +x install_dependencies.sh
working-directory: /home/runner/work/extract/extract/extract
- name: Allow mutable Yarn installs
run: yarn config set enableImmutableInstalls false
working-directory: /home/runner/work/extract/extract/extract
- name: Install JavaScript dependencies
run: ./install_dependencies.sh
working-directory: /home/runner/work/extract/extract/extract
- name: Build the code
run: mvn -q package -DskipTests=true --batch-mode
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v4
with:
name: java-app
path: '/home/runner/work/extract/extract/extract/target/*.war'
test-extract:
needs: build-extract
runs-on: ubuntu-latest
steps:
- name: Download the code
uses: actions/checkout@v4
- name: Install JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
cache: maven
- name: Install Chromium (for functional tests)
uses: browser-actions/setup-chrome@v1
- name: Download artifact generated in build job
uses: actions/download-artifact@v4
with:
name: java-app
path: /tmp/
- name: Rename artifact file to version-agnostic name
run: find /tmp -maxdepth 1 -type f -name extract*.war | xargs -I {} mv {} /tmp/extract.war
- name: Create local Extract folders
run: mkdir -p /tmp/log/extract; mkdir -p /tmp/log/tomcat; mkdir -p /tmp/extract/orders
- name: Give all permissions on Extract log folder
run: chmod 0777 /tmp/log/extract
- name: Give all permissions on Extract order folders (to create data during tests)
run: chmod 0777 /tmp/extract/orders
- name: Make FME Desktop dummy executable (for integration tests)
run: chmod +x /home/runner/work/extract/extract/extract/src/test/java/ch/asit_asso/extract/integration/taskplugins/FmeDesktopTest
- name: Running Docker Compose file with test containers (for functional tests)
uses: hoverkraft-tech/compose-action@v1.5.1
with:
compose-file: "./docker-compose-test.yaml"
up-flags: "--wait"
- name: Execute unit tests
run: mvn -q test -Punit-tests --batch-mode --fail-at-end
- name: Execute integration tests
run: mvn -q verify -Pintegration-tests --batch-mode
- name: Wait on Extract application deployment
uses: iFaxity/wait-on-action@v1.1.0
with:
resource: http://localhost:8080/extract/login
interval: 5000
timeout: 150000
verbose: true
- name: Execute functional tests
run: mvn -q verify -Pfunctional-tests --batch-mode
# - name: "Publish test results"
# if: success() || failure()
# uses: scacap/action-surefire-report@v1
- name: "Publish unit tests results"
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: "Unit tests"
path: "**/surefire-reports/TEST-*.xml"
reporter: "java-junit"
- name: "Publish integration tests results"
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: "Integration tests"
path: "**/failsafe-reports/TEST-*.integration.*.xml"
reporter: "java-junit"
- name: "Publish functional test results"
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: "Functional tests"
path: "**/failsafe-reports/TEST-*.functional.*.xml"
reporter: "java-junit"
# - name: Change tomcat log permissions (so we can upload them)
# if: always()
# run: sudo chmod a+r *.*
# working-directory: /tmp/log/tomcat
# - name: Upload tomcat logs
# if: always()
# uses: actions/upload-artifact@v4
# with:
# name: tomcat-logs
# path: /tmp/log/tomcat/
# - name: Change Extract log permissions (so we can upload them)
# if: always()
# run: sudo chmod a+r *.log
# working-directory: /tmp/log/extract
# - name: Upload Extract logs
# if: always()
# uses: actions/upload-artifact@v4
# with:
# name: extract-logs
# path: /tmp/log/extract/