Skip to content

CI: Replace deprecated arduino/setup-protoc action (Node.js 20 EOL) #1376

Description

@brucearctor

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:

  1. Eliminates the Node.js runtime dependency entirely
  2. Upgrades from protoc 23.x to 27.3
  3. Handles all 5 runner platforms (Linux x86_64/ARM64, macOS x86_64/ARM64, Windows)
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions