Testing Extract after pull request by dependabot[bot] #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/ |