Skip to content

ci: run e2e tests on arm64 runners - #1213

Merged
kavirajk merged 1 commit into
ClickHouse:mainfrom
aarvnd:ci/arm64-runners
Oct 20, 2026
Merged

kavirajk merged 1 commit into
ClickHouse:mainfrom
aarvnd:ci/arm64-runners

Conversation

@aarvnd

@aarvnd aarvnd commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #1128

Runs the e2e suite (which is go test -v ./... against a real ClickHouse binary) on arm64 as well as amd64.

Why the earlier attempt hung: in #1127 arm64 was enabled via the ubuntu-latest-arm64 runner label (from the shared go-faster/x workflow's enable-arm64 input). That label isn't a GitHub-hosted runner, so the job waited for a runner until it timed out. GitHub's free arm64 runner for public repositories is ubuntu-24.04-arm.

Changes in .github/workflows/e2e.yml:

  • New runner matrix dimension: ubuntu-latest and ubuntu-24.04-arm; runs-on takes it from the matrix (8 → 16 jobs).
  • runner.arch added to the Go cache key and to the ClickHouse binary cache key. Without it, an arm64 job could restore the amd64 clickhouse binary cached by an amd64 job (same ClickHouse-<version> key) and fail with an exec format error once the cache is warm.
  • The "Download ClickHouse" step is unchanged: clickhouse/clickhouse-server is a multi-arch image, so docker create on the arm runner pulls the arm64 binary. All four tested versions publish arm64 images.

Not changed: x.yml (unit tests via go-faster/x) — its enable-arm64 uses the same label, so that would need a fix in go-faster/x itself. Happy to follow up there if useful.

The CI run on this PR is the real test of the arm64 jobs; I'll look into any arm64-only failures it surfaces.

Checklist

  • A human-readable description of the changes was provided to include in CHANGELOG (CI only, no user-facing change)

Add ubuntu-24.04-arm to the e2e matrix. The earlier attempt in ClickHouse#1127
used the ubuntu-latest-arm64 label, which is not a GitHub-hosted runner,
so the job waited for a runner until it timed out. ubuntu-24.04-arm is
the free arm64 runner GitHub provides for public repositories.

Include runner.arch in the Go and ClickHouse cache keys so the arm64
jobs do not restore the amd64 ClickHouse binary from cache.

Refs ClickHouse#1128
Copilot AI balanced review requested due to automatic review settings October 10, 2026 07:23

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@aarvnd

aarvnd commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

Hi, gentle ping on this one when you get a chance. Happy to make any changes needed. Thanks!

Comment thread .github/workflows/e2e.yml

@kavirajk kavirajk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. thanks @aarvnd

@kavirajk
kavirajk merged commit 18149fe into ClickHouse:main Oct 20, 2026
25 checks passed
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.

Add support for ARM64 Github runners in CI

3 participants