fix(client): canonicalize rate-limit failure messages for post-content retry #379
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: Client CI | |
| on: | |
| pull_request: | |
| paths: | |
| - '.github/workflows/client-ci.yml' | |
| - 'packages/client/**' | |
| - 'packages/protocol/**' | |
| - 'scripts/**' | |
| - 'install.sh' | |
| - 'pnpm-lock.yaml' | |
| - 'package.json' | |
| push: | |
| branches: [main] | |
| paths: | |
| - '.github/workflows/client-ci.yml' | |
| - 'packages/client/**' | |
| - 'packages/protocol/**' | |
| - 'scripts/**' | |
| - 'install.sh' | |
| - 'pnpm-lock.yaml' | |
| - 'package.json' | |
| workflow_dispatch: {} | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v5 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v5 | |
| with: | |
| version: 9.12.0 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| # Mirrors the version pinned in release.yml so the cross-compile | |
| # dry-run below exercises the exact same toolchain that publishes | |
| # release assets. | |
| - name: Set up Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.2.20 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build protocol | |
| run: pnpm --filter @vicoop-bridge/protocol build | |
| - name: Typecheck client | |
| run: pnpm --filter @vicoop-bridge/client typecheck | |
| - name: Test client | |
| run: pnpm --filter @vicoop-bridge/client test | |
| - name: Build client | |
| run: pnpm --filter @vicoop-bridge/client build | |
| # Cross-compile dry-run: produces every per-platform release binary | |
| # (macOS arm64/x64, Linux arm64/x64, Windows x64) plus its .sha256 | |
| # sidecar into dist-release/, without uploading anything. Catches | |
| # regressions in scripts/package-client-release.sh, the bun | |
| # cross-compile matrix, and any code path that breaks under | |
| # `bun build --compile` (e.g. unembeddable native modules) before | |
| # the release workflow has to discover it on `main`. Whichever tag | |
| # we feed only affects the asset filename — the build artefacts | |
| # themselves are version-agnostic for this check. | |
| - name: Cross-compile release binaries (dry-run) | |
| run: | | |
| CLIENT_VERSION="$(node -p "require('./packages/client/package.json').version")" | |
| ./scripts/package-client-release.sh "@vicoop-bridge/client@${CLIENT_VERSION}" | |
| - name: Sanity-check Linux x64 binary | |
| run: | | |
| CLIENT_VERSION="$(node -p "require('./packages/client/package.json').version")" | |
| BIN="dist-release/vicoop-client-${CLIENT_VERSION}-linux-x64" | |
| GOT="$("$BIN" --version)" | |
| if [[ "$GOT" != "$CLIENT_VERSION" ]]; then | |
| echo "::error::compiled binary reported '$GOT', expected '$CLIENT_VERSION'" | |
| exit 1 | |
| fi | |
| echo "linux-x64 binary --version: $GOT" |