mirror of
https://github.com/davidallendj/magellan.git
synced 2025-12-19 19:17:02 -07:00
This commit updates the Go version to the latest stable release and adds QEMU setup to the GitHub workflow. It also sets up the necessary environment variables required by GoReleaser. These changes ensure that the project is using the latest Go version and is ready for release. Adds support for more architectures, package types, and better docker image.
143 lines
4.1 KiB
YAML
143 lines
4.1 KiB
YAML
version: 2
|
|
|
|
before:
|
|
hooks:
|
|
- go mod download
|
|
- go install github.com/cpuguy83/go-md2man/v2@latest
|
|
- go-md2man -in README.md -out magellan.1
|
|
|
|
builds:
|
|
- binary: magellan
|
|
# export GIT_STATE=$(if git diff-index --quiet HEAD --; then echo 'clean'; else echo 'dirty'; fi)
|
|
# export BUILD_HOST=$(hostname)
|
|
# export GO_VERSION=$(go version | awk '{print $3}')
|
|
# export BUILD_USER=$(whoami)
|
|
ldflags:
|
|
- "-X main.GitCommit={{.Commit}} \
|
|
-X main.BuildTime={{.Timestamp}} \
|
|
-X main.Version={{.Version}} \
|
|
-X main.GitBranch={{.Branch}} \
|
|
-X main.GitTag={{.Tag}} \
|
|
-X main.GitState={{ .Env.GIT_STATE }} \
|
|
-X main.BuildHost={{ .Env.BUILD_HOST }} \
|
|
-X main.GoVersion={{ .Env.GO_VERSION }} \
|
|
-X main.BuildUser={{ .Env.BUILD_USER }} "
|
|
goos:
|
|
- linux
|
|
- darwin
|
|
- windows
|
|
goarch:
|
|
- amd64
|
|
- arm64
|
|
goamd64:
|
|
- v3
|
|
env:
|
|
- CGO_ENABLED=0
|
|
|
|
archives:
|
|
- format: tar.gz
|
|
# this name template makes the OS and Arch compatible with the results of uname.
|
|
name_template: >-
|
|
{{ .ProjectName }}_
|
|
{{- title .Os }}_
|
|
{{- if eq .Arch "amd64" }}x86_64
|
|
{{- else if eq .Arch "386" }}i386
|
|
{{- else }}{{ .Arch }}{{ end }}
|
|
{{- if .Arm }}v{{ .Arm }}{{ end }}
|
|
files:
|
|
- LICENSE
|
|
- CHANGELOG.md
|
|
- README.md
|
|
- magellan.1
|
|
|
|
nfpms:
|
|
- id: magellan
|
|
formats:
|
|
- deb
|
|
- rpm
|
|
- apk
|
|
- archlinux
|
|
maintainer: "David J. Allen <allend@lanl.gov>"
|
|
description: "Magellan is a discovery tool for BMCs."
|
|
homepage: "https://www.openchami.org"
|
|
license: MIT
|
|
section: utils
|
|
priority: optional
|
|
contents:
|
|
- src: dist/magellan_{{ .Os }}_{{ if eq .Arch "amd64" }}{{ .Arch }}_{{ .Amd64 }}{{ else }}{{ .Arch }}{{ end }}/magellan
|
|
dst: /usr/local/bin/magellan
|
|
- src: magellan.1
|
|
dst: /usr/share/man/man1/
|
|
|
|
|
|
dockers:
|
|
- image_templates:
|
|
- &amd64_linux_image ghcr.io/openchami/{{.ProjectName}}:{{ .Tag }}-amd64
|
|
- ghcr.io/openchami/{{.ProjectName}}:{{ .Major }}-amd64
|
|
- ghcr.io/openchami/{{.ProjectName}}:{{ .Major }}.{{ .Minor }}-amd64
|
|
use: buildx
|
|
build_flag_templates:
|
|
- "--pull"
|
|
- "--platform=linux/amd64"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
goarch: amd64
|
|
goamd64: v3
|
|
extra_files:
|
|
- LICENSE
|
|
- CHANGELOG.md
|
|
- README.md
|
|
- image_templates:
|
|
- &arm64v8_linux_image ghcr.io/openchami/{{.ProjectName}}:{{ .Tag }}-arm64
|
|
- ghcr.io/openchami/{{.ProjectName}}:{{ .Major }}-arm64
|
|
- ghcr.io/openchami/{{.ProjectName}}:{{ .Major }}.{{ .Minor }}-arm64
|
|
use: buildx
|
|
build_flag_templates:
|
|
- "--pull"
|
|
- "--platform=linux/arm64"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
extra_files:
|
|
- LICENSE
|
|
- CHANGELOG.md
|
|
- README.md
|
|
goarch: arm64
|
|
|
|
docker_manifests:
|
|
- name_template: "ghcr.io/openchami/{{.ProjectName}}:latest"
|
|
image_templates:
|
|
- *amd64_linux_image
|
|
- *arm64v8_linux_image
|
|
|
|
- name_template: "ghcr.io/openchami/{{.ProjectName}}:{{ .Tag }}"
|
|
image_templates:
|
|
- *amd64_linux_image
|
|
- *arm64v8_linux_image
|
|
|
|
- name_template: "ghcr.io/openchami/{{.ProjectName}}:{{ .Major }}"
|
|
image_templates:
|
|
- *amd64_linux_image
|
|
- *arm64v8_linux_image
|
|
|
|
- name_template: "ghcr.io/openchami/{{.ProjectName}}:{{ .Major }}.{{ .Minor }}"
|
|
image_templates:
|
|
- *amd64_linux_image
|
|
- *arm64v8_linux_image
|
|
|
|
|
|
|
|
|
|
checksum:
|
|
name_template: 'checksums.txt'
|
|
snapshot:
|
|
version_template: "{{ incpatch .Version }}-next"
|
|
changelog:
|
|
sort: asc
|
|
filters:
|
|
exclude:
|
|
- '^docs:'
|
|
- '^test:'
|