chore(deps): bump vite, @cloudflare/vitest-pool-workers, @vitest/coverage-v8 and vitest #139
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: Run TCK (v0.3 compat) | |
| # Drives the a2a-tck v0.3 suite against the v1.0-native SUT in | |
| # `tck/compat-agent/` (built on the v1.0 SDK with the v0.3 compat layer | |
| # enabled on every transport). | |
| on: | |
| push: | |
| branches: ['main', 'epic/**'] | |
| pull_request: | |
| branches: ['main', 'epic/**'] | |
| paths-ignore: | |
| - '**.md' | |
| - 'LICENSE' | |
| - '.github/CODEOWNERS' | |
| - 'test/**' | |
| - 'src/samples/**' | |
| env: | |
| # Tag of the TCK. | |
| TCK_VERSION: 0.3.0.beta5 | |
| # Tells uv to not need a venv, and instead use system | |
| UV_SYSTEM_PYTHON: 1 | |
| # Base URL for the SUT agent | |
| SUT_BASE_URL: http://localhost:41241 | |
| # Base URL for the SUT agent JSON-RPC transport | |
| SUT_JSONRPC_URL: http://localhost:41241/a2a/jsonrpc | |
| # Slow system on CI | |
| TCK_STREAMING_TIMEOUT: 5.0 | |
| # Only run the latest job | |
| concurrency: | |
| group: '${{ github.workflow }} @ ${{ github.head_ref || github.ref }}' | |
| cancel-in-progress: true | |
| jobs: | |
| tck-test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node-version: [20, 22, 24] | |
| steps: | |
| - name: Checkout a2a-js | |
| uses: actions/checkout@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| registry-url: 'https://registry.npmjs.org' | |
| cache: 'npm' | |
| - run: | | |
| npm ci | |
| npm run build | |
| - name: Checkout a2a-tck | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: a2aproject/a2a-tck | |
| path: tck/a2a-tck | |
| ref: ${{ env.TCK_VERSION }} | |
| - name: Skip TCK tests broken against spec-compliant SUTs | |
| run: | | |
| sed -i '/^def test_message_send_continue_with_contextid/a\ import pytest\n pytest.skip("TCK converter reads snake_case only, then compensates with a dummy contextId that trips the SDK spec 3.4.3 mismatch check")' \ | |
| tests/optional/capabilities/test_message_send_capabilities.py | |
| working-directory: tck/a2a-tck | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version-file: 'tck/a2a-tck/pyproject.toml' | |
| - name: Install uv and Python dependencies | |
| run: | | |
| pip install uv | |
| uv pip install -e . | |
| working-directory: tck/a2a-tck | |
| - name: Start SUT (v1.0 SDK + v0.3 compat layer) | |
| run: | | |
| cd tck | |
| npm run tck:compat-sut-agent & | |
| - name: Wait for SUT to start | |
| run: | | |
| URL="${{ env.SUT_BASE_URL }}/.well-known/agent-card.json" | |
| EXPECTED_STATUS=200 | |
| TIMEOUT=120 | |
| RETRY_INTERVAL=2 | |
| START_TIME=$(date +%s) | |
| while true; do | |
| # Calculate elapsed time | |
| CURRENT_TIME=$(date +%s) | |
| ELAPSED_TIME=$((CURRENT_TIME - START_TIME)) | |
| # Check for timeout | |
| if [ "$ELAPSED_TIME" -ge "$TIMEOUT" ]; then | |
| echo "❌ Timeout: Server did not respond with status $EXPECTED_STATUS within $TIMEOUT seconds." | |
| exit 1 | |
| fi | |
| # Get HTTP status code. || true is to reporting a failure to connect as an error | |
| HTTP_STATUS=$(curl --output /dev/null --silent --write-out "%{http_code}" "$URL") || true | |
| echo "STATUS: ${HTTP_STATUS}" | |
| # Check if we got the correct status code | |
| if [ "$HTTP_STATUS" -eq "$EXPECTED_STATUS" ]; then | |
| echo "✅ Server is up! Received status $HTTP_STATUS after $ELAPSED_TIME seconds." | |
| break; | |
| fi | |
| # Wait before retrying | |
| echo "⏳ Server not ready (status: $HTTP_STATUS). Retrying in $RETRY_INTERVAL seconds..." | |
| sleep "$RETRY_INTERVAL" | |
| done | |
| - name: Run TCK (mandatory) | |
| id: run-tck-mandatory | |
| timeout-minutes: 5 | |
| run: | | |
| ./run_tck.py --sut-url ${{ env.SUT_JSONRPC_URL }} --category mandatory --transports jsonrpc,rest,grpc | |
| working-directory: tck/a2a-tck | |
| - name: Run TCK (capabilities) | |
| id: run-tck-capabilities | |
| timeout-minutes: 5 | |
| run: | | |
| ./run_tck.py --sut-url ${{ env.SUT_JSONRPC_URL }} --category capabilities --transports jsonrpc,rest,grpc | |
| working-directory: tck/a2a-tck | |
| - name: Stop SUT | |
| if: always() | |
| run: | | |
| # Find and kill the SUT process | |
| pkill -f "npm run tck:compat-sut-agent" || true | |
| sleep 2 |