Add adapters/ with Claude Code, Cursor, and NAT reference implementations #4
Workflow file for this run
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: adapter-tests | |
| on: | |
| push: | |
| paths: | |
| - 'adapters/**' | |
| - '.github/workflows/adapter_tests.yml' | |
| pull_request: | |
| paths: | |
| - 'adapters/**' | |
| - '.github/workflows/adapter_tests.yml' | |
| jobs: | |
| schema-and-round-trip: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| adapter: [claude-code, cursor, nat, example-guardian] | |
| steps: | |
| - name: Checkout adapter repo | |
| uses: actions/checkout@v4 | |
| - name: Checkout canonical ACS spec | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: Agent-Control-Standard/ACS | |
| path: acs-spec | |
| ref: main | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| - name: Install shared test deps | |
| run: pip install -r adapters/requirements-test.txt | |
| - name: Install NAT runtime (NAT adapter only) | |
| if: matrix.adapter == 'nat' | |
| run: pip install -r adapters/nat/requirements.txt | |
| - name: Run tests | |
| env: | |
| ACS_SPEC_DIR: ${{ github.workspace }}/acs-spec/specification/v0.1.0 | |
| run: | | |
| cd adapters/${{ matrix.adapter }} | |
| # Run every test file in tests/ explicitly so unittest reports | |
| # passed / skipped per file. Failing or unexpected-skip = job fails. | |
| python -m unittest discover -v tests 2>&1 | tee test_output.log | |
| # Hard-fail if any test was skipped that the README claims is required. | |
| # The schema test fails hard (not skips) on missing spec, so a skip | |
| # here would point at the integration/live tests dropping on missing deps. | |
| if grep -E "skipped=[1-9]" test_output.log; then | |
| echo "::warning::Some tests were skipped — see test_output.log" | |
| fi |