Summary
The arduino/setup-protoc@v3 action (SHA c65c819552d16ad3c9b72d9dfd5ba5237b9c906b) used in our CI workflows targets Node.js 20, which is deprecated on GitHub Actions.
After September 16, 2026, these actions will fail — not just warn.
Current State
per-pr.yml: 9 instances of arduino/setup-protoc@c65c819...
heavy.yml: 1 instance
The arduino/setup-protoc repository has NOT released a Node.js 24 compatible version — the v3 branch's latest commit is still the Node 20 upgrade from Jan 2024.
Proposed Fix
Replace arduino/setup-protoc with a direct protoc binary download from the protobuf 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 about
arduino/setup-protoc#99
Affected Repos (org-wide)
This same deprecated action is also used in:
temporalio/sdk-ruby (SHA-pinned, critical)
temporalio/sdk-typescript (uses ancient @v1)
temporalio/ui, temporalio/api-go, temporalio/api (various @v3 references)
Deadline
⚠️ September 16, 2026 — after this date, Node.js 20 will be removed from runners and affected CI will break.
Summary
The
arduino/setup-protoc@v3action (SHAc65c819552d16ad3c9b72d9dfd5ba5237b9c906b) used in our CI workflows targets Node.js 20, which is deprecated on GitHub Actions.After September 16, 2026, these actions will fail — not just warn.
Current State
per-pr.yml: 9 instances ofarduino/setup-protoc@c65c819...heavy.yml: 1 instanceThe
arduino/setup-protocrepository has NOT released a Node.js 24 compatible version — thev3branch's latest commit is still the Node 20 upgrade from Jan 2024.Proposed Fix
Replace
arduino/setup-protocwith a direct protoc binary download from the protobuf releases. This:arduino/setup-protoc#99Affected Repos (org-wide)
This same deprecated action is also used in:
temporalio/sdk-ruby(SHA-pinned, critical)temporalio/sdk-typescript(uses ancient@v1)temporalio/ui,temporalio/api-go,temporalio/api(various@v3references)Deadline