Skip to content

Change promotion machinery #51

Change promotion machinery

Change promotion machinery #51

Workflow file for this run

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