Skip to content

fix(ts,py,rust): refresh web-fallback sessions with the correct key (v2.2.1) #36

fix(ts,py,rust): refresh web-fallback sessions with the correct key (v2.2.1)

fix(ts,py,rust): refresh web-fallback sessions with the correct key (v2.2.1) #36

Workflow file for this run

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