Skip to content

Commit 4332ea1

Browse files
edmondopclaude
andcommitted
Fix build-cli timeout and cross protoc version
Two fixes: 1. Move timeout-minutes: 45 to ci.yml caller jobs — GitHub Actions ignores timeout-minutes in called reusable workflows; it must be set in the caller. The 15-min limit in build-cli.yml was never being overridden by our change there. 2. Install protoc 25.3 from GitHub releases in Cross.toml instead of apt's bundled version — the cross Docker image ships protoc < 3.15 which rejects the `optional` keyword in proto3 syntax used by the substrait .proto files. Protoc 25.x supports it. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 2203a0d commit 4332ea1

2 files changed

Lines changed: 18 additions & 4 deletions

File tree

.github/workflows/ci.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ env:
1313
jobs:
1414
build-cli:
1515
name: Build compiler
16+
# substrait + DataFusion significantly increase compile time; 45 min gives
17+
# enough headroom for a cold build on slow targets (Windows, macOS ARM64).
18+
# Note: timeout-minutes in a called reusable workflow is ignored by GitHub
19+
# Actions, so it must be set here in the caller.
20+
timeout-minutes: 45
1621
strategy:
1722
matrix:
1823
target:
@@ -46,6 +51,7 @@ jobs:
4651

4752
build-cli-linux:
4853
name: Build compiler (x86_64-unknown-linux-musl)
54+
timeout-minutes: 45
4955
uses: ./.github/workflows/build-cli.yml
5056
with:
5157
target: x86_64-unknown-linux-musl

Cross.toml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
# Cross.toml — configuration for cross-compilation via the `cross` tool.
22
# The `pre-build` commands run inside the cross Docker container before cargo build.
3-
# This is needed because `substrait` (via prost-build) requires `protoc` at compile time,
4-
# but the cross Docker images don't include it by default.
3+
# This is needed because `substrait` (via prost-build) requires protoc >= 3.15 at
4+
# compile time (proto3 optional fields), but the cross Docker images ship an older
5+
# protobuf-compiler from apt that rejects the `optional` keyword.
6+
# We download protoc 25.x from the official GitHub releases instead.
57

68
[target.aarch64-unknown-linux-musl]
7-
pre-build = ["apt-get update && apt-get install -y protobuf-compiler"]
9+
pre-build = [
10+
"apt-get update -q && apt-get install -yq curl unzip",
11+
"curl -sL https://github.com/protocolbuffers/protobuf/releases/download/v25.3/protoc-25.3-linux-x86_64.zip -o /tmp/protoc.zip && unzip /tmp/protoc.zip -d /usr/local bin/protoc && rm /tmp/protoc.zip",
12+
]
813

914
[target.aarch64-unknown-linux-gnu]
10-
pre-build = ["apt-get update && apt-get install -y protobuf-compiler"]
15+
pre-build = [
16+
"apt-get update -q && apt-get install -yq curl unzip",
17+
"curl -sL https://github.com/protocolbuffers/protobuf/releases/download/v25.3/protoc-25.3-linux-x86_64.zip -o /tmp/protoc.zip && unzip /tmp/protoc.zip -d /usr/local bin/protoc && rm /tmp/protoc.zip",
18+
]

0 commit comments

Comments
 (0)