fix(ts,py,rust): refresh web-fallback sessions with the correct key (v2.2.1) #36
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: ci | |
| # Builds and tests every language package across its full supported | |
| # version range (Go 1.22+/latest, Node 22/24, Python 3.10-3.13, | |
| # Rust 1.80/stable). Each | |
| # suite runs first in its hermetic form (pure-function + typed-decode | |
| # fixtures, no network), then the behavior-parity job boots the bundled | |
| # mock server once and drives all three languages against it so they | |
| # assert one shared contract. The parity-matrix job fails the build if a | |
| # PORTING.md scenario is not covered in every language. | |
| on: | |
| pull_request: | |
| push: | |
| branches: [master] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| go: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Floor (the go.mod directive) and latest. | |
| go: ["1.22", "stable"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ matrix.go }} | |
| - name: Test (hermetic) | |
| run: go test ./. | |
| mockd: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: stable | |
| - name: Build + test | |
| run: | | |
| cd mockd | |
| go build ./... | |
| go test ./... | |
| ts: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Floor (engines.node) and current. | |
| node: [22, 24] | |
| defaults: | |
| run: | |
| working-directory: packages/typescript | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| - run: npm ci | |
| - name: Test (hermetic) | |
| run: npm test | |
| py: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Supported range (pyproject requires-python). | |
| python: ["3.10", "3.11", "3.12", "3.13"] | |
| defaults: | |
| run: | |
| working-directory: packages/python | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - run: pip install -r requirements.txt -r requirements-dev.txt | |
| - name: Test (hermetic) | |
| run: PYTHONPATH="$PWD" python -m pytest -q | |
| rs: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| rust: ["1.88", "stable"] | |
| defaults: | |
| run: | |
| working-directory: packages/rust | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| components: clippy | |
| - name: Clippy | |
| if: matrix.rust == 'stable' | |
| run: cargo clippy --all-targets -- -D warnings | |
| - name: Test (hermetic) | |
| run: cargo test | |
| parity-matrix: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Scenario coverage must hold in every language | |
| run: bash scripts/parity-matrix.sh --strict | |
| mock-parity: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: stable | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Prepare language environments | |
| run: | | |
| (cd packages/typescript && npm ci) | |
| pip install -r packages/python/requirements.txt -r packages/python/requirements-dev.txt | |
| - name: Behavior parity across Go / TypeScript / Python | |
| run: bash scripts/mock-parity.sh |