Skip to content

fix: block P1 writes after assertion unknown #18

fix: block P1 writes after assertion unknown

fix: block P1 writes after assertion unknown #18

Workflow file for this run

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/*}