fix: block P1 writes after assertion unknown #18
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: | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| quality: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: {python-version: "3.11", cache: pip} | |
| - run: python -m pip install --require-hashes -r requirements.lock | |
| - run: python -m pip install --no-deps --no-build-isolation . | |
| - run: ruff format --check . | |
| - run: ruff check . | |
| - run: python -m pytest tests/unit -q | |
| - run: python scripts/validate_schemas.py | |
| - run: python scripts/validate_skill.py . | |
| - run: python scripts/security_scan.py . | |
| python-matrix: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| python: ["3.11", "3.12", "3.13"] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: {python-version: "${{ matrix.python }}", cache: pip} | |
| - run: python -m pip install --require-hashes -r requirements.lock | |
| - run: python -m pip install --no-deps --no-build-isolation . | |
| - run: python -m pytest -q | |
| - run: python -m multi_api_executor.cli --help | |
| - run: python -m multi_api_executor.cli version | |
| - run: python -m multi_api_executor.cli doctor --quick | |
| - name: Real Unix SIGINT | |
| if: runner.os != 'Windows' | |
| run: python -m pytest tests/e2e/test_unix_sigint.py -q | |
| postgresql: | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:17 | |
| env: {POSTGRES_PASSWORD: test, POSTGRES_DB: executor} | |
| ports: ["5432:5432"] | |
| options: >- | |
| --health-cmd "pg_isready -U postgres" --health-interval 10s | |
| --health-timeout 5s --health-retries 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: {python-version: "3.12", cache: pip} | |
| - run: python -m pip install --require-hashes -r requirements.lock | |
| - run: python -m pip install --no-deps --no-build-isolation . | |
| - run: python -m pytest tests/integration/test_external_database_adapters.py tests/integration/test_database_checks.py -q | |
| env: | |
| TEST_POSTGRES_URL: postgresql+psycopg://postgres:test@127.0.0.1:5432/executor | |
| mysql: | |
| runs-on: ubuntu-latest | |
| services: | |
| mysql: | |
| image: mysql:8.4 | |
| env: {MYSQL_ROOT_PASSWORD: test, MYSQL_DATABASE: executor} | |
| ports: ["3306:3306"] | |
| options: >- | |
| --health-cmd "mysqladmin ping -h localhost -ptest" --health-interval 10s | |
| --health-timeout 5s --health-retries 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: {python-version: "3.12", cache: pip} | |
| - run: python -m pip install --require-hashes -r requirements.lock | |
| - run: python -m pip install --no-deps --no-build-isolation . | |
| - run: python -m pytest tests/integration/test_external_database_adapters.py tests/integration/test_database_checks.py -q | |
| env: | |
| TEST_MYSQL_URL: mysql+pymysql://root:test@127.0.0.1:3306/executor | |
| coverage: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: {python-version: "3.12", cache: pip} | |
| - run: python -m pip install --require-hashes -r requirements.lock | |
| - run: python -m pip install --no-deps --no-build-isolation . | |
| - run: python -m pytest --cov=multi_api_executor --cov-branch --cov-report=xml:coverage.xml --cov-report=html:htmlcov -q | |
| - uses: actions/upload-artifact@v4 | |
| with: {name: coverage-report, path: "coverage.xml\nhtmlcov"} | |
| windows-bundle: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: {python-version: "3.11", cache: pip} | |
| - run: python -m pip install --require-hashes -r requirements.lock | |
| - run: python -m pip install --no-deps --no-build-isolation . | |
| - run: python -m build --no-isolation | |
| - run: python -m pip download --require-hashes --dest wheelhouse -r requirements-runtime.lock | |
| - run: python scripts/build_binary.py | |
| - run: python scripts/generate_supply_chain_docs.py | |
| - run: python scripts/build_skill_bundle.py --platform windows-x64 | |
| - run: python scripts/verify_checksums.py build/release/SHA256SUMS.txt build/release | |
| - run: powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/ci_bundle_smoke.ps1 -BundleZip build/release/multi-api-test-executor-0.1.2-windows-x64.zip | |
| - uses: actions/upload-artifact@v4 | |
| with: {name: bundle-windows-x64, path: build/release/*} | |
| linux-bundle: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: {python-version: "3.11", cache: pip} | |
| - run: python -m pip install --require-hashes -r requirements.lock | |
| - run: python -m pip install --no-deps --no-build-isolation . | |
| - run: python -m build --no-isolation | |
| - run: python -m pip download --require-hashes --dest wheelhouse -r requirements-runtime.lock | |
| - run: python scripts/build_binary.py | |
| - run: python scripts/generate_supply_chain_docs.py | |
| - run: python scripts/build_skill_bundle.py --platform linux-x64 | |
| - run: python scripts/verify_checksums.py build/release/SHA256SUMS.txt build/release | |
| - run: sh scripts/ci_bundle_smoke.sh build/release/multi-api-test-executor-0.1.2-linux-x64.zip | |
| - uses: actions/upload-artifact@v4 | |
| with: {name: bundle-linux-x64, path: build/release/*} | |
| macos-bundle: | |
| runs-on: macos-15-intel | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: {python-version: "3.11", cache: pip} | |
| - run: python -m pip install --require-hashes -r requirements.lock | |
| - run: python -m pip install --no-deps --no-build-isolation . | |
| - run: python -m build --no-isolation | |
| - run: python -m pip download --require-hashes --dest wheelhouse -r requirements-runtime.lock | |
| - run: python scripts/build_binary.py | |
| - run: python scripts/generate_supply_chain_docs.py | |
| - run: python scripts/build_skill_bundle.py --platform macos-x64 | |
| - run: python scripts/verify_checksums.py build/release/SHA256SUMS.txt build/release | |
| - run: sh scripts/ci_bundle_smoke.sh build/release/multi-api-test-executor-0.1.2-macos-x64.zip | |
| - uses: actions/upload-artifact@v4 | |
| with: {name: bundle-macos-x64, path: build/release/*} |