Skip to content

Use pre-built ctags + build arm64 Docker images - #1130

Merged
keegancsmith merged 17 commits into
sourcegraph:mainfrom
kokes:kokes/multi-platform-prebuilt-ctags
Aug 14, 2026
Merged

Use pre-built ctags + build arm64 Docker images#1130
keegancsmith merged 17 commits into
sourcegraph:mainfrom
kokes:kokes/multi-platform-prebuilt-ctags

Conversation

@kokes

@kokes kokes commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

While investigating the option of making zoekt Docker builds multi-platform (arm64 and am64, not just amd64), I ran into a few virtualization problems, so decided to tackle the problem in a slightly different way than just plain qemu.

  • changed universal ctags installation from building from source to using prebuilt binaries
    • bumped the universal ctags version quite a bit - there are prebuilt binaries for the ~2024 version that was there previously - happy to move it back if you so wish - ended up using it as newer version have slight changes in their data structures, so decided not to conflate too many things here
  • Go builds are now cross platform within Docker - meaning that even with QEMU, Docker runs Go builds natively, but compiles for both platforms - it then switches to virtualized targets and copies over the static Go binary from the previous step - this leverages the lack of CGO and makes things fast and efficient. Combined with ctags installed through APKs, there are no virtualized builds.
  • added a CI timeout that was previously missing (a good safeguard against runaway builds)

Supersedes #1129

@kokes

kokes commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

Looking into the test failure - may be due to the newer ctags version

Edit: looks like the tests work again after moving the release back to early 2024

@keegancsmith keegancsmith left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks!! Two minor inline comments then I can land.

Comment thread install-ctags-alpine.sh Outdated
Comment thread .github/workflows/ci.yml Outdated
@kokes

kokes commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

@keegancsmith addressed both

@keegancsmith keegancsmith left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks!

@keegancsmith
keegancsmith merged commit 3c93ab9 into sourcegraph:main Aug 14, 2026
7 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.

2 participants