Repository navigation
Support native ARM64 CF, CredHub, and Fly CLIs - #16
Merged
Merged
Conversation
There was a problem hiding this comment.
🔵 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
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
ARCH="amd64"; CF selectslinux64-binary; Fly requestsarch=amd64on 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.
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.