ci: Replace deprecated arduino/setup-protoc with direct protoc download - #1377
ci: Replace deprecated arduino/setup-protoc with direct protoc download#1377brucearctor wants to merge 1 commit into
Conversation
The arduino/setup-protoc@v3 action targets Node.js 20, which is deprecated on GitHub Actions runners and will fail after Sept 16, 2026. Replace all 10 instances across per-pr.yml and heavy.yml with a cross-platform shell step that downloads protoc directly from the protobuf GitHub releases. This: - Eliminates the Node.js runtime dependency entirely - Upgrades from protoc 23.x to 27.3 - Handles all 5 runner platforms (Linux x86_64/ARM64, macOS x86_64/ARM64, Windows) - Removes the TODO comment about arduino/setup-protoc#99 (no longer relevant)
|
FWIW: I am not at all invested in this 'solution' OK to close. If we like setup-protoc action, it seems we would need to fork or get a PR merged bumping versions. ALso, maybe not an issue, until it is. So -- mostly food-for-thought. Again, 0 cares if we close/don't want. |
|
Appreciate the PR. I believe we will want to standardize how we fetch protoc across repos, will report back with decision. |
Understood. A working solution/PR is often just as easy as a design doc, except then is concrete. That throws lots of people, but a PR doesn't mean strongly invested in that solution -- highlights as a concrete option. |
|
Discussed with the team and decided SDK would align on using mise to manage any additional build tools. Thanks for starting this convo. Closing in favor of #1382 |
|
I wonder the extent nix was considered. Mise solid tools. I think Nix crazy powerful. But, usually don't bring up until people ready for that conversation :-) |
Fixes #1376
Summary
Replace all 10 instances of
arduino/setup-protoc@v3(SHAc65c819..., targeting Node.js 20) with a cross-platform shell step that downloads protoc directly from protobuf GitHub releases.Changes
per-pr.yml: Replaced 9 instances across all CI jobs (build-and-lint, test, msrv, integ-tests, wasm-workflow-tests, cloud-tests, docker-integ-tests, examples, c-bridge-static-link-test)heavy.yml: Replaced 1 instanceWhat this does
ubuntu-latest)ubuntu-24.04-arm64-2-core)macos-26-intel)macos-14)windows-latest)arduino/setup-protoc#99(no longer relevant)Why
arduino/setup-protoc@v3targets Node.js 20, which is deprecated on GitHub Actions. After September 16, 2026, these actions will fail entirely. Thearduino/setup-protocrepo has not released a Node.js 24 update.