Skip to content

Support native ARM64 CF, CredHub, and Fly CLIs - #16

Merged
patrickcrocker merged 2 commits into
mainfrom
fix/native-arm64-clis
Nov 1, 2026
Merged

patrickcrocker merged 2 commits into
mainfrom
fix/native-arm64-clis

Conversation

@patrickcrocker

@patrickcrocker patrickcrocker commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

Summary

 install CLI
-  download AMD64 on every supported host
+  select the native container architecture
+  build CredHub from its source tag when an ARM64 archive is absent
+  optionally pin Fly to a Concourse release before a server exists

CredHub source builds use an explicitly configured Go feature. Add native ELF and version checks on AMD64/ARM64, including Ubuntu Resolute scenarios. Bump CF to 1.0.1, CredHub to 1.0.3, and Fly to 1.1.0.

CF's default version selection now follows the latest published release: tag 8.19.1 exists without release assets, while published 8.19.0 remains downloadable.

Evidence

  • Before: CredHub sets ARCH="amd64"; CF selects linux64-binary; Fly requests arch=amd64 on ARM64 hosts.
    After: All six native AMD64/ARM64 CLI jobs passed in the first CI run, including native ELF verification and CredHub source builds. Bash syntax, feature/scenario JSON, and whitespace checks pass.
  • Before: Default CF resolution selects unpublished tag 8.19.1, whose package download returns HTTP 412.
    After: A probe executing the installer's version-selection block selects published 8.19.0 and downloads successfully. In the updated CI run, all six native CLI jobs and all nine existing CF/CredHub/Fly matrix jobs pass, including default/latest CF installation. Feature schema validation passes.

The broader matrix still reports failures in untouched Builder, GitHub Copilot CLI, and Specify CLI features. Those failures are outside these three feature updates; the full repository matrix is not green.

Merge Danger

Door: two-way

Previous feature versions remain available; releases publish only through the existing manual workflow.

Blast Radius: tooling

Changes affect new builds using these three features. ARM64 CredHub source builds require a suitable Go feature; AMD64 keeps its existing binary/legacy-archive path. Fly's existing URL behavior remains the default.

Copilot AI balanced review requested due to automatic review settings November 1, 2026 13:10

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.

🔵 Needs a closer look

The ARM64 fallback’s runtime compatibility remains unconfirmed pending build and ELF execution results from the native container matrix.

No open issues 🎉

What changed in this PR

Adds native ARM64 support to the CF, CredHub, and Fly devcontainer features while preserving their AMD64 installation paths.

Changes:

  • Selects architecture-specific downloads and adds a CredHub source-build fallback using an explicitly configured Go toolchain.
  • Adds optional Fly release pinning without requiring a running Concourse server.
  • Adds native architecture and version checks, Ubuntu Resolute scenarios, and AMD64/ARM64 CI coverage; updates feature versions and documentation.
File Description
test/​fly-cli/​test.sh Checks Fly’s pinned version and native ELF architecture.
test/​fly-cli/​scenarios.json Adds a pinned Fly scenario on Resolute.
test/​fly-cli/​native_architecture.sh Sets the expected Fly version for shared checks.
test/​credhub-cli/​test.sh Checks CredHub’s pinned version and native ELF architecture.
test/​credhub-cli/​scenarios.json Adds Resolute coverage and explicit Go configuration.
test/​credhub-cli/​native_architecture.sh Sets the expected CredHub version for shared checks.
test/​cf-cli/​test.sh Checks CF’s pinned version and native ELF architecture.
test/​cf-cli/​scenarios.json Adds a pinned CF scenario on Resolute.
test/​cf-cli/​native_architecture.sh Sets the expected CF version for shared checks.
src/​fly-cli/​NOTES.md Documents architecture selection and release pinning.
src/​fly-cli/​install.sh Downloads native Fly binaries from a server or pinned release.
src/​fly-cli/​devcontainer-feature.json Adds the version option and bumps Fly to 1.1.0.
src/​credhub-cli/​NOTES.md Documents ARM64 source builds and Go requirements.
src/​credhub-cli/​install.sh Selects native archives with an ARM64 source-build fallback.
src/​credhub-cli/​devcontainer-feature.json Orders installation after Go and bumps CredHub to 1.0.3.
src/​cf-cli/​NOTES.md Documents architecture-specific download requirements.
src/​cf-cli/​install.sh Adds ARM64 release downloads and verifies CLI execution.
src/​cf-cli/​devcontainer-feature.json Bumps CF to 1.0.1.
.github/​workflows/​test.yaml Adds an AMD64/ARM64 test matrix for all three CLIs.

Review effort: Balanced

@patrickcrocker
patrickcrocker merged commit 0a2d19a into main Nov 1, 2026
34 of 41 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