Skip to content

ci: Replace deprecated arduino/setup-protoc with direct protoc download#1377

Open
brucearctor wants to merge 1 commit into
temporalio:mainfrom
brucearctor:fix/replace-deprecated-setup-protoc
Open

ci: Replace deprecated arduino/setup-protoc with direct protoc download#1377
brucearctor wants to merge 1 commit into
temporalio:mainfrom
brucearctor:fix/replace-deprecated-setup-protoc

Conversation

@brucearctor

Copy link
Copy Markdown
Contributor

Fixes #1376

Summary

Replace all 10 instances of arduino/setup-protoc@v3 (SHA c65c819..., 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 instance

What this does

  1. Eliminates Node.js runtime dependency — no more deprecation warnings or future breakage
  2. Upgrades protoc from 23.x to 27.3
  3. Cross-platform — handles all 5 runner platforms:
    • Linux x86_64 (ubuntu-latest)
    • Linux ARM64 (ubuntu-24.04-arm64-2-core)
    • macOS x86_64 (macos-26-intel)
    • macOS ARM64 (macos-14)
    • Windows x86_64 (windows-latest)
  4. Removes the TODO about arduino/setup-protoc#99 (no longer relevant)

Why

arduino/setup-protoc@v3 targets Node.js 20, which is deprecated on GitHub Actions. After September 16, 2026, these actions will fail entirely. The arduino/setup-protoc repo has not released a Node.js 24 update.

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)
@brucearctor brucearctor requested a review from a team as a code owner July 6, 2026 16:15
@brucearctor

Copy link
Copy Markdown
Contributor Author

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.

@chris-olszewski

Copy link
Copy Markdown
Member

Appreciate the PR. I believe we will want to standardize how we fetch protoc across repos, will report back with decision.

@brucearctor

Copy link
Copy Markdown
Contributor Author

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.

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.

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

2 participants