mirror of
https://github.com/restic/rest-server.git
synced 2025-12-06 17:15:45 -08:00
If the changelog generation is disabled in goreleaser, this also ignores custom release notes passed in via the command line. Thus keep the default changelog configuration.
223 lines
7.3 KiB
YAML
223 lines
7.3 KiB
YAML
---
|
|
before:
|
|
# Run a few commands to check the state of things. When anything is changed
|
|
# in files commited to the repo, goreleaser will abort before building
|
|
# anything because the git checkout is dirty.
|
|
hooks:
|
|
# make sure all modules are available
|
|
- go mod download
|
|
# make sure all generated code is up to date
|
|
- go generate ./...
|
|
# check that $VERSION is set
|
|
- test -n "{{ .Env.VERSION }}"
|
|
# make sure the file VERSION contains the latest version (used for build.go)
|
|
- bash -c 'echo "{{ .Env.VERSION }}" > VERSION'
|
|
# make sure that main.go contains the latest version
|
|
- echo sed -i 's/var version = "[^"]*"/var version = "{{ .Env.VERSION }}"/' cmd/rest-server/main.go
|
|
# make sure the file CHANGELOG.md is up to date
|
|
- calens --output CHANGELOG.md
|
|
|
|
# build a single binary
|
|
builds:
|
|
-
|
|
# make sure everything is statically linked by disabling cgo altogether
|
|
env:
|
|
- CGO_ENABLED=0
|
|
|
|
# set the package for the main binary
|
|
main: ./cmd/rest-server
|
|
|
|
flags:
|
|
# don't include any paths to source files in the resulting binary
|
|
- -trimpath
|
|
|
|
mod_timestamp: '{{ .CommitTimestamp }}'
|
|
|
|
ldflags:
|
|
# set the version variable in the main package
|
|
- "-s -w -X main.version={{ .Version }}"
|
|
|
|
# list all operating systems and architectures we build binaries for
|
|
goos:
|
|
- linux
|
|
- darwin
|
|
- windows
|
|
- freebsd
|
|
- netbsd
|
|
- openbsd
|
|
- dragonfly
|
|
- solaris
|
|
|
|
goarch:
|
|
- amd64
|
|
- 386
|
|
- arm
|
|
- arm64
|
|
- mips
|
|
- mips64
|
|
- mips64le
|
|
- ppc64
|
|
- ppc64le
|
|
goarm:
|
|
- 6
|
|
- 7
|
|
|
|
# configure the resulting archives to create
|
|
archives:
|
|
-
|
|
# package a directory which contains the source file
|
|
wrap_in_directory: true
|
|
|
|
builds_info: &archive_file_info
|
|
owner: root
|
|
group: root
|
|
mtime: '{{ .CommitDate }}'
|
|
mode: 0644
|
|
|
|
# add these files to all archives
|
|
files:
|
|
- src: LICENSE
|
|
dst: .
|
|
info: *archive_file_info
|
|
- src: README.md
|
|
dst: .
|
|
info: *archive_file_info
|
|
- src: CHANGELOG.md
|
|
dst: .
|
|
info: *archive_file_info
|
|
|
|
# also build an archive of the source code
|
|
source:
|
|
enabled: true
|
|
|
|
# build a file containing the SHA256 hashes
|
|
checksum:
|
|
name_template: 'SHA256SUMS'
|
|
|
|
# sign the checksum file
|
|
signs:
|
|
- artifacts: checksum
|
|
signature: "${artifact}.asc"
|
|
args:
|
|
- "--armor"
|
|
- "--output"
|
|
- "${signature}"
|
|
- "--detach-sign"
|
|
- "${artifact}"
|
|
|
|
# configure building the rest-server docker image
|
|
dockers:
|
|
- image_templates:
|
|
- restic/rest-server:{{ .Version }}-amd64
|
|
build_flag_templates:
|
|
- "--platform=linux/amd64"
|
|
- "--pull"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.source=https://github.com/restic/{{ .ProjectName }}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
- "--label=org.opencontainers.image.licenses=BSD-2-Clause"
|
|
use: buildx
|
|
dockerfile: "Dockerfile.goreleaser"
|
|
extra_files: &extra_files
|
|
- docker/create_user
|
|
- docker/delete_user
|
|
- docker/entrypoint.sh
|
|
- image_templates:
|
|
- restic/rest-server:{{ .Version }}-i386
|
|
goarch: 386
|
|
build_flag_templates:
|
|
- "--platform=linux/386"
|
|
- "--pull"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.source=https://github.com/restic/{{ .ProjectName }}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
- "--label=org.opencontainers.image.licenses=BSD-2-Clause"
|
|
use: buildx
|
|
dockerfile: "Dockerfile.goreleaser"
|
|
extra_files: *extra_files
|
|
- image_templates:
|
|
- restic/rest-server:{{ .Version }}-arm32v6
|
|
goarch: arm
|
|
goarm: 6
|
|
build_flag_templates:
|
|
- "--platform=linux/arm/v6"
|
|
- "--pull"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.source=https://github.com/restic/{{ .ProjectName }}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
- "--label=org.opencontainers.image.licenses=BSD-2-Clause"
|
|
use: buildx
|
|
dockerfile: "Dockerfile.goreleaser"
|
|
extra_files: *extra_files
|
|
- image_templates:
|
|
- restic/rest-server:{{ .Version }}-arm32v7
|
|
goarch: arm
|
|
goarm: 7
|
|
build_flag_templates:
|
|
- "--platform=linux/arm/v7"
|
|
- "--pull"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.source=https://github.com/restic/{{ .ProjectName }}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
- "--label=org.opencontainers.image.licenses=BSD-2-Clause"
|
|
use: buildx
|
|
dockerfile: "Dockerfile.goreleaser"
|
|
extra_files: *extra_files
|
|
- image_templates:
|
|
- restic/rest-server:{{ .Version }}-arm64v8
|
|
goarch: arm64
|
|
build_flag_templates:
|
|
- "--platform=linux/arm64/v8"
|
|
- "--pull"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.source=https://github.com/restic/{{ .ProjectName }}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
- "--label=org.opencontainers.image.licenses=BSD-2-Clause"
|
|
use: buildx
|
|
dockerfile: "Dockerfile.goreleaser"
|
|
extra_files: *extra_files
|
|
- image_templates:
|
|
- restic/rest-server:{{ .Version }}-ppc64le
|
|
goarch: ppc64le
|
|
build_flag_templates:
|
|
- "--platform=linux/ppc64le"
|
|
- "--pull"
|
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
|
- "--label=org.opencontainers.image.title={{.ProjectName}}"
|
|
- "--label=org.opencontainers.image.source=https://github.com/restic/{{ .ProjectName }}"
|
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
|
- "--label=org.opencontainers.image.version={{.Version}}"
|
|
- "--label=org.opencontainers.image.licenses=BSD-2-Clause"
|
|
use: buildx
|
|
dockerfile: "Dockerfile.goreleaser"
|
|
extra_files: *extra_files
|
|
|
|
|
|
docker_manifests:
|
|
- name_template: "restic/rest-server:{{ .Version }}"
|
|
image_templates:
|
|
- "restic/rest-server:{{ .Version }}-amd64"
|
|
- "restic/rest-server:{{ .Version }}-i386"
|
|
- "restic/rest-server:{{ .Version }}-arm32v6"
|
|
- "restic/rest-server:{{ .Version }}-arm32v7"
|
|
- "restic/rest-server:{{ .Version }}-arm64v8"
|
|
- "restic/rest-server:{{ .Version }}-ppc64le"
|
|
- name_template: "restic/rest-server:latest"
|
|
image_templates:
|
|
- "restic/rest-server:{{ .Version }}-amd64"
|
|
- "restic/rest-server:{{ .Version }}-i386"
|
|
- "restic/rest-server:{{ .Version }}-arm32v6"
|
|
- "restic/rest-server:{{ .Version }}-arm32v7"
|
|
- "restic/rest-server:{{ .Version }}-arm64v8"
|
|
- "restic/rest-server:{{ .Version }}-ppc64le"
|