Skip to content

Configure petstore SUT in workflow #3

Configure petstore SUT in workflow

Configure petstore SUT in workflow #3

Workflow file for this run

name: test-all
on:
push:
branches-ignore:
- 'dependabot/**' #avoid duplicates: only run the PR, not the commit
- 'gh-pages' #github pages do not trigger all tests
tags-ignore:
- 'v*' #avoid rerun existing commit on release
pull_request:
branches:
- 'main'
jobs:
test:
runs-on: ubuntu-latest
#if: ${{ false }} # disable for now
#avoids duplicate execution of pr from local repo, but allows pr from forked repos and dependabot
if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && (github.event.pull_request.head.repo.fork || startsWith(github.head_ref, 'dependabot/')))
strategy:
matrix:
scope: [Petstore]
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '8'
cache: 'maven'
- name: Launch Petstore
if: ${{ matrix.scope == 'Petstore' }}
working-directory: ./sut-petstore
run: |
mvn package -DskipTests=true -ntp
docker build -t swagger-petstore .
docker run -d -p 8081:8080 --name swagger-petstore swagger-petstore
chmod u+x ../setup/wait-container-ready.sh
../setup/wait-container-ready.sh swagger-petstore "public ResponseContext findPetsByCategoryAndStatus"
- run: docker ps
- name: Rules cache
id: rules-cache
uses: actions/[email protected]
with:
path: .tdrules-cache
key: cache-${{ matrix.scope }}-v1-${{ github.run_id }}
restore-keys: cache-${{ matrix.scope }}-v1-
- name: Test All
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn test -pl st-tdg-test -Dtest=**/*${{ matrix.scope }}* -Dmaven.test.failure.ignore=true -U --no-transfer-progress
- if: ${{ matrix.scope == 'Petstore' }}
run: docker logs swagger-petstore > st-tdg-test/target/docker-petstore-server.log
- name: Generate report checks
if: always()
uses: mikepenz/[email protected]
with:
check_name: "test-result-${{ matrix.scope }}"
report_paths: "**/surefire-reports/TEST-*.xml"
fail_on_failure: 'true'
- name: Publish test report files
if: always()
uses: actions/upload-artifact@v4
with:
name: "test-report-files-${{ matrix.scope }}"
path: |
**/target/site
**/target/surefire-reports
**/target/*.html
**/target/*.log