Cross-SDK and load scenarios #5
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: Cross-SDK and load scenarios | |
| # Runs integration-testing/ (interop with the TypeScript, Rust and Python SDKs, plus load runs) | |
| # against this checkout. Deliberately not on push or pull_request: it needs Node, Rust and Python | |
| # toolchains, clones the peer SDKs and takes minutes. It never gates the release workflow. | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| peers-ref: | |
| description: 'Branch, tag or SHA to test every peer SDK at' | |
| required: false | |
| default: 'main' | |
| peer-overrides: | |
| description: 'Per-peer refs, space separated, e.g. "typescript-sdk=v0.5.0 rust-sdk=v1.2.0"' | |
| required: false | |
| default: '' | |
| schedule: | |
| - cron: '17 4 * * *' | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: cross-sdk-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| scenarios: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| cache: maven | |
| - name: Set up Node 20 | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: '20' | |
| - name: Set up Rust stable | |
| uses: dtolnay/rust-toolchain@02cb101ec7c40f2c49e1d9714d64511d8e1b74de # v1 | |
| with: | |
| toolchain: stable | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.12' | |
| - name: Set up JBang | |
| uses: jbangdev/setup-jbang@2b1b465a7b75f4222b81426f23a01e013aa7b95c # v0.1.1 | |
| with: | |
| version: '0.135.1' | |
| setup-java: 'false' | |
| - name: Run every scenario | |
| env: | |
| PEERS_REF: ${{ github.event.inputs.peers-ref || 'main' }} | |
| PEER_OVERRIDES: ${{ github.event.inputs.peer-overrides || '' }} | |
| run: | | |
| args=(--peers-ref "$PEERS_REF") | |
| for o in $PEER_OVERRIDES; do args+=(--peer "$o"); done | |
| integration-testing/scripts/run-all.sh "${args[@]}" | |
| - name: Upload scenario logs | |
| if: always() | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | |
| with: | |
| name: cross-sdk-logs | |
| path: integration-testing/logs/ | |
| retention-days: 14 |