mirror of
https://github.com/juanfont/headscale.git
synced 2024-12-20 19:09:07 +01:00
cec46716b6
Sometimes we want people to test features in PRs and not everyone is used to using git, build go and docker. This commit builds docker containers and pushes them to GHCR (not dockerhub) for testing on pushes to branches that has open pull requests to main using Ko. This is configured to mimic the debug images produced by goreleaser. Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
192 lines
5.9 KiB
YAML
192 lines
5.9 KiB
YAML
---
|
|
before:
|
|
hooks:
|
|
- go mod tidy -compat=1.22
|
|
- go mod vendor
|
|
|
|
release:
|
|
prerelease: auto
|
|
|
|
builds:
|
|
- id: headscale
|
|
main: ./cmd/headscale
|
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
|
env:
|
|
- CGO_ENABLED=0
|
|
targets:
|
|
- darwin_amd64
|
|
- darwin_arm64
|
|
- freebsd_amd64
|
|
- linux_386
|
|
- linux_amd64
|
|
- linux_arm64
|
|
- linux_arm_5
|
|
- linux_arm_6
|
|
- linux_arm_7
|
|
flags:
|
|
- -mod=readonly
|
|
ldflags:
|
|
- -s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=v{{.Version}}
|
|
|
|
archives:
|
|
- id: golang-cross
|
|
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}'
|
|
format: binary
|
|
|
|
source:
|
|
enabled: true
|
|
name_template: "{{ .ProjectName }}_{{ .Version }}"
|
|
format: tar.gz
|
|
files:
|
|
- "vendor/"
|
|
|
|
nfpms:
|
|
# Configure nFPM for .deb and .rpm releases
|
|
#
|
|
# See https://nfpm.goreleaser.com/configuration/
|
|
# and https://goreleaser.com/customization/nfpm/
|
|
#
|
|
# Useful tools for debugging .debs:
|
|
# List file contents: dpkg -c dist/headscale...deb
|
|
# Package metadata: dpkg --info dist/headscale....deb
|
|
#
|
|
- builds:
|
|
- headscale
|
|
package_name: headscale
|
|
priority: optional
|
|
vendor: headscale
|
|
maintainer: Kristoffer Dalby <kristoffer@dalby.cc>
|
|
homepage: https://github.com/juanfont/headscale
|
|
license: BSD
|
|
bindir: /usr/bin
|
|
formats:
|
|
- deb
|
|
contents:
|
|
- src: ./config-example.yaml
|
|
dst: /etc/headscale/config.yaml
|
|
type: config|noreplace
|
|
file_info:
|
|
mode: 0644
|
|
- src: ./docs/packaging/headscale.systemd.service
|
|
dst: /usr/lib/systemd/system/headscale.service
|
|
- dst: /var/lib/headscale
|
|
type: dir
|
|
- dst: /var/run/headscale
|
|
type: dir
|
|
scripts:
|
|
postinstall: ./docs/packaging/postinstall.sh
|
|
postremove: ./docs/packaging/postremove.sh
|
|
|
|
kos:
|
|
- id: ghcr
|
|
repository: ghcr.io/juanfont/headscale
|
|
|
|
# bare tells KO to only use the repository
|
|
# for tagging and naming the container.
|
|
bare: true
|
|
base_image: gcr.io/distroless/base-debian12
|
|
build: headscale
|
|
main: ./cmd/headscale
|
|
env:
|
|
- CGO_ENABLED=0
|
|
platforms:
|
|
- linux/amd64
|
|
- linux/386
|
|
- linux/arm64
|
|
- linux/arm/v7
|
|
tags:
|
|
- "{{ if not .Prerelease }}latest{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}.{{ .Minor }}.{{ .Patch }}{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}.{{ .Minor }}{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}.{{ .Minor }}.{{ .Patch }}{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}.{{ .Minor }}{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}{{ end }}"
|
|
- "{{ if not .Prerelease }}stable{{ else }}unstable{{ end }}"
|
|
- "{{ .Tag }}"
|
|
- '{{ trimprefix .Tag "v" }}'
|
|
- "sha-{{ .ShortCommit }}"
|
|
|
|
- id: dockerhub
|
|
build: headscale
|
|
base_image: gcr.io/distroless/base-debian12
|
|
repository: headscale/headscale
|
|
bare: true
|
|
platforms:
|
|
- linux/amd64
|
|
- linux/386
|
|
- linux/arm64
|
|
- linux/arm/v7
|
|
tags:
|
|
- "{{ if not .Prerelease }}latest{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}.{{ .Minor }}.{{ .Patch }}{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}.{{ .Minor }}{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}.{{ .Minor }}.{{ .Patch }}{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}.{{ .Minor }}{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}{{ end }}"
|
|
- "{{ if not .Prerelease }}stable{{ else }}unstable{{ end }}"
|
|
- "{{ .Tag }}"
|
|
- '{{ trimprefix .Tag "v" }}'
|
|
- "sha-{{ .ShortCommit }}"
|
|
|
|
- id: ghcr-debug
|
|
repository: ghcr.io/juanfont/headscale
|
|
bare: true
|
|
base_image: gcr.io/distroless/base-debian12:debug
|
|
build: headscale
|
|
main: ./cmd/headscale
|
|
env:
|
|
- CGO_ENABLED=0
|
|
platforms:
|
|
- linux/amd64
|
|
- linux/386
|
|
- linux/arm64
|
|
- linux/arm/v7
|
|
tags:
|
|
- "{{ if not .Prerelease }}latest-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}.{{ .Minor }}.{{ .Patch }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}.{{ .Minor }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}.{{ .Minor }}.{{ .Patch }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}.{{ .Minor }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}stable{{ else }}unstable-debug{{ end }}"
|
|
- "{{ .Tag }}-debug"
|
|
- '{{ trimprefix .Tag "v" }}-debug'
|
|
- "sha-{{ .ShortCommit }}-debug"
|
|
|
|
- id: dockerhub-debug
|
|
build: headscale
|
|
base_image: gcr.io/distroless/base-debian12:debug
|
|
repository: headscale/headscale
|
|
bare: true
|
|
platforms:
|
|
- linux/amd64
|
|
- linux/386
|
|
- linux/arm64
|
|
- linux/arm/v7
|
|
tags:
|
|
- "{{ if not .Prerelease }}latest-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}.{{ .Minor }}.{{ .Patch }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}.{{ .Minor }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}{{ .Major }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}.{{ .Minor }}.{{ .Patch }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}.{{ .Minor }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}v{{ .Major }}-debug{{ end }}"
|
|
- "{{ if not .Prerelease }}stable{{ else }}unstable-debug{{ end }}"
|
|
- "{{ .Tag }}-debug"
|
|
- '{{ trimprefix .Tag "v" }}-debug'
|
|
- "sha-{{ .ShortCommit }}-debug"
|
|
|
|
checksum:
|
|
name_template: "checksums.txt"
|
|
snapshot:
|
|
name_template: "{{ .Tag }}-next"
|
|
changelog:
|
|
sort: asc
|
|
filters:
|
|
exclude:
|
|
- "^docs:"
|
|
- "^test:"
|