The runner is pnpm 11.24.0; this workstation is 10.30.3. The key was renamed across that major: pnpm 10 reads `onlyBuiltDependencies` (a list), pnpm 11 reads `allowBuilds` (a package -> bool map). Each ignores the other's key, which is why the runner kept reporting ignored builds while every local check passed. The diagnostic step found it in one run, after three failed guesses. `pnpm config get onlyBuiltDependencies` on the runner returned the list correctly, which was the misleading part -- the value resolved fine, it simply is not the key pnpm 11 consults. `pnpm approve-builds @swc/core esbuild` then wrote the pnpm 11 form and named it outright. Declares both keys so neither version is left out, rather than pinning the fleet to one. Verified by reproducing the failure locally under pnpm 11 (npx pnpm@11.24.0), then confirming install, lint and build pass under both 11.24.0 and 10.30.3. Drops the package.json `pnpm` field entirely: pnpm 11 warns it is no longer read for anything. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XZG2i4AmfSqE97EJGBVb64
59 lines
1.5 KiB
YAML
59 lines
1.5 KiB
YAML
name: ci
|
|
|
|
on:
|
|
push:
|
|
branches-ignore: [main]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
check:
|
|
runs-on: rust
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: format
|
|
run: cargo fmt --all -- --check
|
|
|
|
- name: clippy
|
|
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
|
|
- name: test
|
|
run: cargo test --workspace --all-features
|
|
|
|
# A musl build is what actually ships, so a target-only breakage should
|
|
# fail here rather than in the deploy workflow.
|
|
- name: build (musl)
|
|
run: |
|
|
rustup target add x86_64-unknown-linux-musl
|
|
cargo build --release --target x86_64-unknown-linux-musl --bin rustingface
|
|
|
|
web:
|
|
runs-on: fedora-43
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
# The runner's pnpm is not the workstation's -- 11.x here against 10.x
|
|
# there at the time of writing -- and the build-script allowlist was
|
|
# renamed between those majors. Printing the version and the resolved
|
|
# settings is what turned three failed guesses into a one-line answer,
|
|
# so it stays.
|
|
- name: pnpm environment
|
|
working-directory: web
|
|
run: |
|
|
pnpm --version
|
|
pnpm config get --json onlyBuiltDependencies || true
|
|
pnpm config list || true
|
|
|
|
- name: install
|
|
working-directory: web
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: lint
|
|
working-directory: web
|
|
run: pnpm lint
|
|
|
|
- name: build
|
|
working-directory: web
|
|
run: pnpm build
|