feat: introduce smoke test group and fail-fast test orchestration (#572)

This commit is contained in:
Jens Bergmann
2025-07-09 19:23:52 +02:00
committed by GitHub
parent ed2f63f0dd
commit 1a1633e12d
8 changed files with 607 additions and 46 deletions

View File

@@ -53,7 +53,7 @@ jobs:
###########################################################
build:
###########################################################
permissions:
packages: write
@@ -144,8 +144,8 @@ jobs:
- name: Check with pip-audit
# until https://github.com/astral-sh/ruff/issues/8277
run:
pdm run pip-audit --progress-spinner off --skip-editable --verbose
run:
pdm run pip-audit --progress-spinner off --skip-editable --verbose
- name: Check with ruff
@@ -169,7 +169,7 @@ jobs:
set -eux
case "${{ matrix.os }}" in
ubuntu-*)
ubuntu-*)
sudo apt-get install --no-install-recommends -y xvfb
xvfb-run pdm run itest:cov -vv
;;
@@ -178,6 +178,10 @@ jobs:
esac
- name: Run smoke tests
run: pdm run smoke:cov -vv
- name: Run app from source
run: |
echo "
@@ -299,7 +303,7 @@ jobs:
- name: List coverage reports
run: find . -name coverage-*.xml
run: find . -name coverage-*.xml
- name: Publish unit-test coverage
@@ -326,6 +330,18 @@ jobs:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- name: Publish smoke-test coverage
uses: codecov/codecov-action@v5 # https://github.com/codecov/codecov-action
with:
slug: ${{ github.repository }}
name: smoke-coverage
flags: smoke-tests
disable_search: true
files: coverage/**/coverage-smoke.xml
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
###########################################################
publish-release:
###########################################################
@@ -341,9 +357,9 @@ jobs:
# publish-coverage succeeded OR was skipped
if: >
always()
&& needs.build.result == 'success'
&& needs.build.result == 'success'
&& (needs.publish-coverage.result == 'success' || needs.publish-coverage.result == 'skipped')
&& (github.ref_name == 'main' || github.ref_name == 'release') && !github.event.act
&& (github.ref_name == 'main' || github.ref_name == 'release') && !github.event.act
concurrency: publish-${{ github.ref_name }}-release # https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idconcurrency
@@ -362,7 +378,7 @@ jobs:
uses: vegardit/fast-apt-mirror.sh@v1
- name: Git Checkout
- name: Git Checkout
# only required by "gh release create" to prevent "fatal: Not a git repository"
uses: actions/checkout@v4 # https://github.com/actions/checkout