mirror of
https://github.com/luxfi/broker.git
synced 2026-09-24 00:25:18 +00:00
ci: native six-platform release matrix + multi-arch container
goreleaser builds the six-platform binary matrix (linux/darwin/windows ×
amd64/arm64) with SBOMs and checksums on `v*` tag push. docker.yml is
pinned to the lux-build-linux-{amd64,arm64} ARC runners (native, no
QEMU) and delegates to the canonical hanzoai/.github reusable workflow.
release.yml triggers on `v*` tags and runs on the lux-build self-hosted
scale-set.
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
name: Docker
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [main, dev, test]
|
||||
tags: ['v*']
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
uses: hanzoai/.github/.github/workflows/docker-build.yml@main
|
||||
with:
|
||||
image: ghcr.io/luxfi/broker
|
||||
# Native multi-arch on lux-org ARC scale-sets — no QEMU.
|
||||
runner-amd64: lux-build-linux-amd64
|
||||
runner-arm64: lux-build-linux-arm64
|
||||
runner-deploy: lux-deploy-linux-amd64
|
||||
secrets: inherit
|
||||
@@ -0,0 +1,45 @@
|
||||
name: Release
|
||||
|
||||
# Native binary release for brokerd on `v*` tags.
|
||||
#
|
||||
# Six-platform matrix (linux/darwin/windows × amd64/arm64) via goreleaser.
|
||||
# Container image is built independently by .github/workflows/docker.yml
|
||||
# (native multi-arch ARC runners — NO QEMU).
|
||||
#
|
||||
# Runner labels: lux-build self-hosted ARC scale-sets per the org policy.
|
||||
# GitHub-hosted runners are NOT a permitted fallback.
|
||||
|
||||
on:
|
||||
push:
|
||||
tags: ['v*']
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
id-token: write
|
||||
|
||||
jobs:
|
||||
goreleaser:
|
||||
runs-on: lux-build
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
|
||||
- name: Install syft for SBOM
|
||||
run: |
|
||||
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh \
|
||||
| sh -s -- -b /usr/local/bin
|
||||
|
||||
- uses: goreleaser/goreleaser-action@v6
|
||||
with:
|
||||
distribution: goreleaser
|
||||
version: "~> v2"
|
||||
args: release --clean
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -0,0 +1,63 @@
|
||||
# goreleaser config for brokerd.
|
||||
#
|
||||
# Triggered by the release workflow on `v*` tag push. Builds native
|
||||
# binaries for all six policy platforms, produces tarballs + zips +
|
||||
# checksums + SBOM, and attaches them to the GitHub Release.
|
||||
#
|
||||
# Container images are built separately by `.github/workflows/docker.yml`
|
||||
# (native multi-arch via hanzoai/.github reusable workflow).
|
||||
|
||||
version: 2
|
||||
|
||||
project_name: brokerd
|
||||
|
||||
before:
|
||||
hooks:
|
||||
- go mod tidy
|
||||
|
||||
builds:
|
||||
- id: brokerd
|
||||
main: ./cmd/brokerd
|
||||
binary: brokerd
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
flags:
|
||||
- -trimpath
|
||||
ldflags:
|
||||
- -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}
|
||||
goos:
|
||||
- linux
|
||||
- darwin
|
||||
- windows
|
||||
goarch:
|
||||
- amd64
|
||||
- arm64
|
||||
|
||||
archives:
|
||||
- id: brokerd
|
||||
builds: [brokerd]
|
||||
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
|
||||
format_overrides:
|
||||
- goos: windows
|
||||
format: zip
|
||||
files:
|
||||
- LICENSE*
|
||||
- README*
|
||||
|
||||
checksum:
|
||||
name_template: checksums.txt
|
||||
|
||||
sboms:
|
||||
- artifacts: archive
|
||||
|
||||
snapshot:
|
||||
version_template: "{{ incpatch .Version }}-next"
|
||||
|
||||
changelog:
|
||||
use: github
|
||||
sort: asc
|
||||
|
||||
release:
|
||||
draft: false
|
||||
prerelease: auto
|
||||
mode: append
|
||||
Reference in New Issue
Block a user