fleet/.goreleaser.yml
Scott Gress 39e9c0a349
Fix issues related to architecture-namespaced binaries (#26453)
This PR fixes a couple of issues introduced when we started releasing
separate amd64 and arm64 versions of our windows and linux binaries:

* Adds the architecture string to the download url in the fleetctl npm
package
* Updates the goreleaser templates to only add the architecture to
non-macos (i.e. windows and linux) packages
* Updates the script that the website uses to download fleetctl

I did a weak test of the fleetctl npm installer by hardcoding what was
returned for my system type and at least verified that the download url
worked. Doing some more checks on VMs now.
2025-02-20 16:42:14 -06:00

154 lines
4.2 KiB
YAML

version: 2
project_name: fleet
monorepo:
tag_prefix: fleet-
dir: .
before:
hooks:
- make deps
- make generate
# gomod:
# proxy: true
builds:
- id: fleet
dir: ./cmd/fleet/
binary: fleet
env:
- CGO_ENABLED=1
goos:
- linux
goarch:
- amd64
flags:
- -tags=full,fts5,netgo
- -trimpath
ldflags:
- -extldflags "-static"
- -X github.com/fleetdm/fleet/v4/server/version.appName={{ .ArtifactName }}
- -X github.com/fleetdm/fleet/v4/server/version.version={{ .Version }}
- -X github.com/fleetdm/fleet/v4/server/version.branch={{ .Branch }}
- -X github.com/fleetdm/fleet/v4/server/version.revision={{ .FullCommit }}
- -X github.com/fleetdm/fleet/v4/server/version.buildDate={{ time "2006-01-02" }}
- -X github.com/fleetdm/fleet/v4/server/version.buildUser={{ .Env.USER }}
- id: fleetctl
dir: ./cmd/fleetctl/
binary: fleetctl
env:
- CGO_ENABLED=0
goos:
- linux
- windows
goarch:
- amd64
- arm64
flags:
- -trimpath
ldflags:
- -X github.com/fleetdm/fleet/v4/server/version.appName={{ .ArtifactName }}
- -X github.com/fleetdm/fleet/v4/server/version.version={{ .Version }}
- -X github.com/fleetdm/fleet/v4/server/version.branch={{ .Branch }}
- -X github.com/fleetdm/fleet/v4/server/version.revision={{ .FullCommit }}
- -X github.com/fleetdm/fleet/v4/server/version.buildDate={{ time "2006-01-02" }}
- -X github.com/fleetdm/fleet/v4/server/version.buildUser={{ .Env.USER }}
- id: fleetctl-macos
dir: ./cmd/fleetctl/
binary: fleetctl
env:
- CGO_ENABLED=0
goos:
- darwin
goarch:
- amd64
- arm64
flags:
- -trimpath
ldflags:
- -X github.com/fleetdm/fleet/v4/server/version.appName={{ .ArtifactName }}
- -X github.com/fleetdm/fleet/v4/server/version.version={{ .Version }}
- -X github.com/fleetdm/fleet/v4/server/version.branch={{ .Branch }}
- -X github.com/fleetdm/fleet/v4/server/version.revision={{ .FullCommit }}
- -X github.com/fleetdm/fleet/v4/server/version.buildDate={{ time "2006-01-02" }}
- -X github.com/fleetdm/fleet/v4/server/version.buildUser={{ .Env.USER }}
universal_binaries:
- id: fleetctl # resulting binary id
ids: [fleetctl-macos] # source binaries
replace: true
name_template: fleetctl # resulting binary name
hooks:
post:
- sh -c "FLEETCTL_BINARY_PATH={{ .Path }} ./tools/sign-fleetctl/main.sh"
archives:
- id: fleet
builds:
- fleet
name_template: fleet_v{{.Version}}_{{- if eq .Os "darwin" }}macos{{- else }}{{ .Os }}{{ end }}
format_overrides:
- goos: windows
format: zip
wrap_in_directory: true
- id: fleetctl
builds:
- fleetctl
# Note -- changing this can break GitOps and other workflows that expect these filenames to be deterministic!
name_template: fleetctl_v{{.Version}}_{{- if eq .Os "darwin" }}macos{{- else }}{{ .Os }}_{{.Arch}}{{ end }}
wrap_in_directory: true
- id: fleetctl-zip
builds:
- fleetctl
# Note -- changing this can break GitOps and other workflows that expect these filenames to be deterministic!
name_template: fleetctl_v{{.Version}}_{{- if eq .Os "darwin" }}macos{{- else }}{{ .Os }}_{{.Arch}}{{ end }}
format: zip
wrap_in_directory: true
dockers:
- goos: linux
goarch: amd64
ids:
- fleet
- fleetctl
dockerfile: tools/fleet-docker/Dockerfile
image_templates:
- 'fleetdm/fleet:latest'
- 'fleetdm/fleet:{{ .Tag }}'
- 'fleetdm/fleet:{{ .Tag }}'
- 'fleetdm/fleet:v{{ .Major }}'
- goos: linux
goarch: amd64
ids:
- fleetctl
dockerfile: tools/fleetctl-docker/Dockerfile
build_flag_templates:
- "--build-arg=binpath=fleetctl"
image_templates:
- 'fleetdm/fleetctl:latest'
- 'fleetdm/fleetctl:{{ .Tag }}'
- 'fleetdm/fleetctl:{{ .Tag }}'
- 'fleetdm/fleetctl:v{{ .Major }}'
checksum:
name_template: 'checksums.txt'
snapshot:
version_template: "{{ .Tag }}-untagged"
changelog:
disable: true
release:
github:
owner: fleetdm
name: fleet
draft: true
prerelease: auto