Change promotion machinery #51
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: Smoke Tests | |
| # Docker integration tests — verifies container isolation properties on | |
| # a clean machine. Triggers: | |
| # push to main — authoritative run after merge | |
| # PR to main — validate a branch before merging; fires on opened | |
| # + synchronize (each new commit) + reopened | |
| # workflow_dispatch — manual run: `gh workflow run smoke.yml --ref <branch>` | |
| # or the "Run workflow" button in the GitHub UI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| # Cancel any in-progress run on the same ref when a newer commit lands. | |
| # Groups per-branch / per-PR, so pushes to one PR never cancel another. | |
| concurrency: | |
| group: smoke-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| smoke: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Configure git for CI | |
| # `cmd_init` reads user.name/email from git config as the default | |
| # promotion identity; give CI a deterministic one even though the | |
| # smoke test stubs ask_promotion_identity. | |
| run: | | |
| git config --global user.name "CI Test" | |
| git config --global user.email "ci@test.local" | |
| git config --global init.defaultBranch main | |
| - name: Install alcatrazer (editable) | |
| # Makes `from alcatrazer import …` work inside the smoke test's | |
| # tempdir-based test project, without path hacks. | |
| run: pip install -e . | |
| - name: Run smoke tests | |
| # setUpClass creates a fresh tempdir project and drives | |
| # alcatrazer.start.cmd_init then cmd_start end-to-end: init | |
| # generates the recipe; start does docker build -> docker run -> | |
| # run commands via docker exec. tearDownClass stops + removes | |
| # the container. | |
| run: python -m unittest discover -s src/alcatrazer/integration_tests -v |