Repository navigation
Nightly ACTS #6
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: Nightly ACTS | |
| # Conformance counterpart of `nightly.yaml`, on the same schedule. Separate | |
| # workflows so neither shows up red for the other's failure and each can be | |
| # re-run on its own. | |
| on: | |
| schedule: | |
| - cron: '0 2 * * *' # 2:00 AM UTC daily | |
| workflow_dispatch: # Allow manual execution | |
| permissions: | |
| contents: write | |
| jobs: | |
| acts: | |
| name: Nightly ACTS Run | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v7 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| - name: Clone a2a-itk | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: a2aproject/a2a-itk | |
| ref: main | |
| path: itk/a2a-itk | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v4 | |
| - name: Build itk_service image (GHA layer cache) | |
| uses: docker/build-push-action@v7 | |
| with: | |
| context: itk/a2a-itk | |
| tags: itk_service:latest | |
| load: true | |
| cache-from: type=gha,scope=itk_service | |
| cache-to: type=gha,mode=max,scope=itk_service | |
| - name: Cache launcher peer-SDK checkouts + build outputs | |
| uses: actions/cache@v6 | |
| with: | |
| path: ~/.cache/a2a-itk-launcher | |
| key: itk-launcher-${{ runner.os }}-${{ github.sha }} | |
| restore-keys: | | |
| itk-launcher-${{ runner.os }}- | |
| - name: Run Nightly ACTS Conformance | |
| run: bash run_itk.sh | |
| working-directory: itk | |
| env: | |
| A2A_ITK_REVISION: main | |
| ITK_ACTS_RUN: "1" | |
| ITK_ACTS_TRANSPORTS: jsonrpc,grpc,rest | |
| # Unlike the PR tier this does NOT gate on conformance: a `must` | |
| # failure is the metric being recorded, not a broken run. The step | |
| # fails only if the service errored or the report came back | |
| # malformed, which is exactly when publishing should be skipped. | |
| ITK_NIGHTLY_RUN: "True" | |
| ITK_SKIP_BUILD: "1" | |
| - name: Upload ACTS reports | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: acts-reports-python-nightly | |
| path: itk/acts-report-*.json | |
| if-no-files-found: warn | |
| # Outlives the rolling asset's 7-run window, so every entry it | |
| # carries still has its full report to link to. | |
| retention-days: 30 | |
| - name: Upload ACTS Results to Rolling Release | |
| uses: softprops/action-gh-release@v3 | |
| with: | |
| # The conformance counterpart of `itk_python.json`, on the same | |
| # permanent tag: `process_acts_results.py` fetches | |
| # `.../download/nightly-metrics/acts_python.json`, appends one entry | |
| # covering all three bindings, and the upload puts it back. | |
| tag_name: "nightly-metrics" | |
| prerelease: true | |
| files: | | |
| itk/acts_python.json | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |