3 Commits

Author SHA1 Message Date
Joey Parrish
4b3d1f98f9 fix(ci): Update release for trusted publishing to NPM (#1544)
This handles trusted publishing for Shaka Packager to NPM without
tokens.

This also updates upload/download actions, and adds a filter on specific
artifacts downloaded to avoid conflicts that have arisen since the last
release.

Also updates the images used in the build matrix.

Issue shaka-project/shaka-player#9132
2026-03-04 13:30:04 -08:00
Joey Parrish
565fec5262 ci: Stop using self-hosted Linux/arm64 runners (#1474)
Some checks are pending
Release / release (push) Blocked by required conditions
Release / Settings (push) Waiting to run
Release / Compute latest release flag (push) Blocked by required conditions
Release / Update docs (push) Blocked by required conditions
Release / Update docker image (push) Blocked by required conditions
Release / Build (push) Blocked by required conditions
Release / Artifacts (push) Blocked by required conditions
Release / Update NPM (push) Blocked by required conditions
These are no longer required since GitHub launched their own Linux/arm64
runners.

See
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
2025-01-16 18:37:01 -08:00
Joey Parrish
774cd3f1bc ci: Read build matrix JSON explicitly (#1461)
Some checks are pending
Release / release (push) Blocked by required conditions
Release / Settings (push) Waiting to run
Release / Compute latest release flag (push) Blocked by required conditions
Release / Update docs (push) Blocked by required conditions
Release / Update docker image (push) Blocked by required conditions
Release / Build (push) Blocked by required conditions
Release / Artifacts (push) Blocked by required conditions
Release / Update NPM (push) Blocked by required conditions
Because we used require() to read build-matrix.json, the file could be
replaced with build-matrix.json.js, allowing code injection into our CI
pipelines. This fixes this vulnerability by reading the JSON text with
the fs module, then explicitly parsing it, rather than relying on
require().

This also changes the location of the file, to match its location in
other projects.

Note that this workflow is not currently giving any elevated permissions
to users, so it is not currently possible to damage the repo through a
PR. But this might have been possible in the past, due to
organization-wide defaults for token permissions (recently fixed). No
evidence has been found of past exploit.

See also https://github.com/shaka-project/shaka-streamer/issues/216 and
https://github.com/shaka-project/static-ffmpeg-binaries/issues/57
2024-12-16 15:02:21 -08:00