Skip to content

ci: skip Vale binary download in the build job - #671

Merged
AbhishekDoshi26 merged 1 commit into
mainfrom
fix/ci-skip-vale-download
Sep 16, 2026
Merged

AbhishekDoshi26 merged 1 commit into
mainfrom
fix/ci-skip-vale-download

Conversation

@AbhishekDoshi26

Copy link
Copy Markdown
Member

Why

The build job has started failing intermittently during dependency install:

Error: Download failed with status code: 403
  pkgid: '@vvago/vale@3.21.0', event: 'postinstall'

#667 bumped @vvago/vale from 3.17.1 to 3.21.0, and the new version changed where it downloads the Vale binary from:

Version Download URL Rate limited
3.17.1 github.com/errata-ai/vale/releases/download/... No
3.21.0 api.github.com/repos/vale-cli/vale/releases/assets/<id> Yes, unauthenticated REST API (x-ratelimit-limit: 60, per IP)

The package sends no token, and the build job runs on macos-latest, whose runners share IPs. When other jobs on the same IP have used up the 60 requests for that hour, our download gets a 403.

What changed

Removed npx --no allow-scripts from the install step in .github/actions/astro_site/action.yaml.

The build job doesn't need that step. Vale's postinstall is the only script enabled in the lavamoat.allowScripts config (everything else is false, and .npmrc sets ignore-scripts=true), so the step only downloaded a Vale binary, and nothing in format:check or build uses it. Vale linting already runs in the style-check job via vale-action, which installs Vale on its own.

The local npm run lint:content workflow is unchanged: developers still run npx allow-scripts after npm ci to get the binary.

Verification

In a clean checkout of main with this change: npm ci (no Vale binary installed), then npm run format:check and astro build both pass, and all internal links are valid. This PR's own CI run is the end-to-end check.

@vvago/vale 3.21.0 downloads its binary from the unauthenticated GitHub
REST API (api.github.com/.../releases/assets/<id>), which is limited to
60 requests per hour per IP. Shared macOS runner IPs exhaust that, so the
postinstall fails with a 403. 3.17.1 used the releases/download URL,
which is not subject to that limit.

The build job never runs Vale: Vale's postinstall is the only script
allow-scripts enables, and linting happens in the style-check job via
vale-action. Drop the allow-scripts step so the build job no longer
depends on that download.
@AbhishekDoshi26
AbhishekDoshi26 merged commit cac7c7d into main Sep 16, 2026
4 checks passed
@AbhishekDoshi26
AbhishekDoshi26 deleted the fix/ci-skip-vale-download branch September 16, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant