Skip to content

Release linux/arm64 build (multi-arch support) #72

Description

@antoinetoussaint-byte

Summary

service-python ships only darwin/amd64, darwin/arm64, and linux/amd64 — there is no linux/arm64 build. This blocks running the agent on any arm64 Linux target (arm64 companion images, arm64 CI runners, arm64 K8s nodes). Core's downloader already resolves service-python_<version>_linux_arm64.tar.gz by host arch, so on arm64 Linux it 404s today purely because this repo doesn't publish that asset.

Confirmed missing on the latest release (v0.0.55): assets are darwin_amd64, darwin_arm64, linux_amd64 only.

Why it's not a one-line goarch add

The agent requires cgo (it links its own tree-sitter grammar, CGO_ENABLED=1), so a linux/arm64 build needs the aarch64 cross-cgo toolchain. That toolchain is already present — the release runs under ghcr.io/goreleaser/goreleaser-cross, which ships aarch64-linux-gnu-gcc. So this is a goreleaser-only change; no release-workflow change is needed.

Change

Add after the linux-amd64 build stanza in .goreleaser.yaml, before archives::

 - id: linux-arm64binary: service-pythonenv:
- CGO_ENABLED=1
- CC=aarch64-linux-gnu-gcc
- CXX=aarch64-linux-gnu-g++goos:
- linuxgoarch:
- arm64

(binary: matches the existing linux-amd64 stanza's value.) The archivesname_template already emits {name}_{version}_{os}_{arch}.tar.gz, so the new ..._linux_arm64.tar.gz asset matches core's downloader contract automatically — no archive change.

Then cut a new release.

Verification

gh release view v<version> --repo codefly-dev/service-python --json assets \
--jq '[.assets[].name | select(contains("linux_arm64"))]'

Related

Part of the multi-arch rollout tracked in codefly-dev/core#346 (which established core needs no change — the gap is purely the missing platform in each service-* release matrix).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions