docs: add Alpha-tier routing CTA to README #12
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: PR | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: pip | |
| - name: Install dev deps | |
| run: python -m pip install -e ".[dev]" | |
| - name: Layer 0 — gitleaks (full repo scan) | |
| run: | | |
| # Extract gitleaks to /tmp so its bundled README/docs (full of regex | |
| # examples for AWS/Sidekiq/etc secrets) don't pollute the source scan. | |
| mkdir -p /tmp/gitleaks | |
| curl -sSfL https://github.com/gitleaks/gitleaks/releases/download/v8.18.4/gitleaks_8.18.4_linux_x64.tar.gz \ | |
| | tar xz -C /tmp/gitleaks | |
| /tmp/gitleaks/gitleaks detect --source . --redact --verbose --no-git | |
| - name: Layer 0 — pre-commit hooks (excluding network) | |
| run: | | |
| python -m pip install pre-commit | |
| pre-commit run --all-files --hook-stage manual || true | |
| # Re-run to detect mutations from auto-fixers. | |
| pre-commit run --all-files | |
| - name: Layer 0 — secret scan (test backstop) | |
| run: pytest tests/test_layer0_secrets.py -v | |
| - name: Layer 1 — structural | |
| run: pytest tests/test_layer1_structural.py -v | |
| - name: Layer 4 — static tier gating | |
| run: pytest tests/test_layer4_tier_static.py -v | |
| - name: Cookbook tools — unit tests with coverage | |
| run: pytest tests/cookbook_tools/ -v --cov=cookbook_tools --cov=scripts --cov-report=term-missing | |
| - name: Layer 2 — cassette replay | |
| run: pytest tests/test_layer2_execution.py -v -m cassette |