Repository navigation
add (post)MORTEM #81
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| paths: | |
| - 'bin/**' | |
| - 'lib/**' | |
| - 'extras/**' | |
| - 'tests/*.sh' | |
| - 'tests/*.py' | |
| - '.github/workflows/ci.yml' | |
| pull_request: | |
| paths: | |
| - 'bin/**' | |
| - 'lib/**' | |
| - 'extras/**' | |
| - 'tests/*.sh' | |
| - 'tests/*.py' | |
| - '.github/workflows/ci.yml' | |
| jobs: | |
| changes: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: read | |
| outputs: | |
| shell: ${{ steps.filter.outputs.shell }} | |
| python: ${{ steps.filter.outputs.python }} | |
| integration: ${{ steps.filter.outputs.integration }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: dorny/paths-filter@v4 | |
| id: filter | |
| with: | |
| filters: | | |
| shell: | |
| - 'bin/**' | |
| - 'lib/atomic/common.sh' | |
| - 'extras/pacman-wrapper' | |
| - 'tests/test_harness.sh' | |
| - 'tests/test_config.sh' | |
| - 'tests/test_validate.sh' | |
| - 'tests/test_device.sh' | |
| - 'tests/test_space.sh' | |
| - 'tests/test_chroot.sh' | |
| - 'tests/test_gc.sh' | |
| - 'tests/test_uki.sh' | |
| - 'tests/test_home.sh' | |
| - 'tests/test_upgrade.sh' | |
| - 'tests/test_rebuild_uki.sh' | |
| - '.github/workflows/ci.yml' | |
| python: | |
| - 'lib/atomic/fstab.py' | |
| - 'lib/atomic/rootdev.py' | |
| - 'tests/test_fstab.py' | |
| - 'tests/test_rootdev.py' | |
| - '.github/workflows/ci.yml' | |
| integration: | |
| - 'bin/atomic-guard' | |
| - 'extras/pacman-wrapper' | |
| - 'lib/atomic/common.sh' | |
| - 'etc/atomic.conf' | |
| - 'tests/test_integration.sh' | |
| - '.github/workflows/ci.yml' | |
| shellcheck: | |
| needs: changes | |
| if: needs.changes.outputs.shell == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - run: | | |
| shellcheck -s bash -e SC1090,SC1091,SC2010,SC2034 \ | |
| bin/atomic-upgrade \ | |
| bin/atomic-gc \ | |
| bin/atomic-rebuild-uki \ | |
| lib/atomic/common.sh \ | |
| extras/pacman-wrapper | |
| shellcheck -s bash -e SC1090,SC1091,SC2310 \ | |
| bin/atomic-guard | |
| python-lint: | |
| needs: changes | |
| if: needs.changes.outputs.python == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - run: pip install --no-cache-dir ruff mypy | |
| - run: ruff check lib/atomic/fstab.py lib/atomic/rootdev.py | |
| - run: mypy --ignore-missing-imports lib/atomic/fstab.py lib/atomic/rootdev.py | |
| python-test: | |
| needs: changes | |
| if: needs.changes.outputs.python == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - run: pip install --no-cache-dir pytest | |
| - run: python -m pytest tests/ -v | |
| bash-test: | |
| needs: changes | |
| if: needs.changes.outputs.shell == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - run: | | |
| for t in \ | |
| tests/test_config.sh \ | |
| tests/test_validate.sh \ | |
| tests/test_device.sh \ | |
| tests/test_space.sh \ | |
| tests/test_chroot.sh \ | |
| tests/test_gc.sh \ | |
| tests/test_uki.sh \ | |
| tests/test_home.sh \ | |
| tests/test_upgrade.sh \ | |
| tests/test_rebuild_uki.sh; do | |
| echo "━━━ $t ━━━" | |
| bash "$t" || exit 1 | |
| done | |
| integration-test: | |
| needs: changes | |
| if: needs.changes.outputs.integration == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - run: bash tests/test_integration.sh |