Add android/arm64 release binary for Termux (#28) - #29
Merged
Conversation
gh builds under Termux with GOOS=android and installs the extension by downloading the release asset named <GOOS>-<GOARCH>, i.e. android-arm64. The release matrix built only darwin/linux/windows, so the asset was absent and 'gh extension install drogers0/gh-image' aborted on Android. - .goreleaser.yml: add android to the goos matrix; ignore android/amd64 (requires cgo, which we build without). name_template already yields the android-arm64 asset name gh looks for. - test.yml: cross-compile android/arm64 in CI so a future dependency that needs cgo on android fails a PR rather than a tag-time release. - README: list Android/Termux and document GH_SESSION_TOKEN as the auth path there (no desktop browser cookie store to extract from). No source changes: kooky compiles for android/arm64 and main.go already falls through to its --token/GH_SESSION_TOKEN error when no cookie store is found.
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.
Closes #28.
Problem
gh extension install drogers0/gh-imagefails on Android (Termux). Termux buildsghwithGOOS=android, so it installs an extension by downloading the release asset named<GOOS>-<GOARCH>— literallyandroid-arm64. The release matrix built onlydarwin/linux/windows, so no such asset existed and the install aborted.This is a build/release-matrix gap, not a code gap.
Changes (reduced scope of the #28 plan)
.goreleaser.yml— addandroidto thegoosmatrix andignoreandroid/amd64(it requires external cgo linking, and we build withCGO_ENABLED=0). The existingname_template: "{{ .Os }}-{{ .Arch }}"already renders theandroid-arm64asset nameghlooks for..github/workflows/test.yml— add anandroid/arm64cross-compile step. The android target isn't exercised bygo build ./...on the runner, so a future dependency that needs cgo on android would otherwise only surface at tag time when the release fails. Compiling it in CI is the check that matters.README.md— list Android/Termux in the supported platforms and add a caveat: there's no desktop browser cookie store on Termux, so supply the session token viaGH_SESSION_TOKEN(extract it on a desktop withgh image extract-token).No source changes.
kookycompiles forandroid/arm64; at runtime on Termux browser extraction finds nothing andmain.goalready falls through to its existing--token/GH_SESSION_TOKENerror.Doc syncs to
architecture.md,SKILL.md, and the submission guide (steps 4–6 of the plan) are intentionally left out of this PR to keep it focused.Validation
GOOS=android GOARCH=arm64 CGO_ENABLED=0 go build .→ELF 64-bit LSB pie executable, ARM aarch64 ... interpreter /system/bin/linker64(PIE, Bionic — runnable under Android).goreleaser build --snapshot --clean→ producedandroid_arm64_v8.0plus the 6 existing targets, noandroid/amd64attempted.go vet ./...andgo test -race -cover ./...green.The
android-arm64asset appears once a release is tagged; the fix is inert until then.