Skip to content

Merge pull request #40 from kabir/bump-next-version #147

Merge pull request #40 from kabir/bump-next-version

Merge pull request #40 from kabir/bump-next-version #147

Workflow file for this run

name: Build and Run TCK
on:
push:
pull_request:
workflow_dispatch:
env:
# Tag of the TCK
TCK_VERSION: 0.3.0.beta3
# Tells uv to not need a venv, and instead use system
UV_SYSTEM_PYTHON: 1
# Only run the latest job
concurrency:
group: '${{ github.workflow }} @ ${{ github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build-and-test:
name: Run TCK
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Check if SDK version is SNAPSHOT
run: |
SDK_VERSION=$(mvn help:evaluate -Dexpression=version.sdk -q -DforceStdout)
echo "SDK_VERSION=${SDK_VERSION}" >> "$GITHUB_ENV"
if [[ "${SDK_VERSION}" == *"-SNAPSHOT" ]]; then
echo "IS_SNAPSHOT=true" >> "$GITHUB_ENV"
else
echo "IS_SNAPSHOT=false" >> "$GITHUB_ENV"
fi
- name: Checkout a2a-java
if: env.IS_SNAPSHOT == 'true'
uses: actions/checkout@v4
with:
repository: a2aproject/a2a-java
path: a2a-java
ref: 0.3.x
- name: Checkout a2a-tck
uses: actions/checkout@v4
with:
repository: a2aproject/a2a-tck
path: a2a-tck
ref: ${{ env.TCK_VERSION }}
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Build a2a-java with Maven, skipping tests
if: env.IS_SNAPSHOT == 'true'
run: |
mvn -B install -DskipTests
working-directory: a2a-java
- name: Get a2a-java version and save as env var
if: env.IS_SNAPSHOT == 'true'
run: |
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "SDK_VERSION=${VERSION}" >> "$GITHUB_ENV"
working-directory: a2a-java
- name: Build the TCK server
run: |
mvn clean install -B -Dversion.sdk=${SDK_VERSION} -pl tck -am
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version-file: "a2a-tck/pyproject.toml"
- name: Install uv and Python dependencies
run: |
pip install uv
uv pip install -e .
working-directory: a2a-tck
- name: Start the WildFly SUT
run: |
SUT_JSONRPC_URL=http://localhost:8080 SUT_REST_URL=http://localhost:8080 SUT_GRPC_URL=http://localhost:9555 mvn wildfly:start -B -Dversion.sdk=${SDK_VERSION} -pl tck -Dstartup-timeout=120 -Dwildfly.serverArgs="--stability=preview"
- name: Run TCK
env:
SUT_JSONRPC_URL: http://localhost:8080
TCK_STREAMING_TIMEOUT: 4.0
run: |
./run_tck.py --sut-url ${SUT_JSONRPC_URL} --category all --transports jsonrpc,grpc,rest --compliance-report report.json
working-directory: a2a-tck
- name: Start the WildFly SUT
run: |
mvn wildfly:shutdown
- name: Upload tck server.log
uses: actions/upload-artifact@v4
if: always() # Upload even if previous steps fail
with:
name: tck-server-log
path: tck/target/wildfly/standalone/log/server.log
retention-days: 5