193 lines
6.1 KiB
YAML
193 lines
6.1 KiB
YAML
# https://goreleaser.com
|
|
project_name: gotosocial
|
|
before:
|
|
# https://goreleaser.com/customization/hooks/
|
|
hooks:
|
|
# generate the swagger.yaml file using go-swagger and bundle it into the assets directory
|
|
- swagger generate spec --scan-models --exclude-deps -o web/assets/swagger.yaml
|
|
- sed -i "s/REPLACE_ME/{{ incpatch .Version }}/" web/assets/swagger.yaml
|
|
# Install web deps + bundle web assets
|
|
- yarn --cwd ./web/source install
|
|
- yarn --cwd ./web/source ts-patch install # https://typia.io/docs/setup/#manual-setup
|
|
- yarn --cwd ./web/source build
|
|
builds:
|
|
# https://goreleaser.com/customization/build/
|
|
-
|
|
main: ./cmd/gotosocial
|
|
binary: gotosocial
|
|
ldflags:
|
|
- -s
|
|
- -w
|
|
- -extldflags
|
|
- -static
|
|
- -X main.Version={{.Version}}
|
|
tags:
|
|
- netgo
|
|
- osusergo
|
|
- static_build
|
|
- kvformat
|
|
- timetzdata
|
|
- >-
|
|
{{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }}
|
|
- >-
|
|
{{ if and (index .Env "WASMSQLITE3") (.Env.WASMSQLITE3) }}wasmsqlite3{{ end }}
|
|
env:
|
|
- CGO_ENABLED=0
|
|
goos:
|
|
- linux
|
|
- freebsd
|
|
goarch:
|
|
- 386
|
|
- amd64
|
|
- arm
|
|
- arm64
|
|
goarm:
|
|
- 6
|
|
- 7
|
|
ignore:
|
|
# build freebsd only for amd64
|
|
- goos: freebsd
|
|
goarch: arm64
|
|
- goos: freebsd
|
|
goarch: arm
|
|
- goos: freebsd
|
|
goarch: 386
|
|
mod_timestamp: "{{ .CommitTimestamp }}"
|
|
dockers:
|
|
# https://goreleaser.com/customization/docker/
|
|
-
|
|
use: buildx
|
|
goos: linux
|
|
goarch: amd64
|
|
image_templates:
|
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64"
|
|
- "superseriousbusiness/{{ .ProjectName }}:latest-amd64"
|
|
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-amd64{{ end }}"
|
|
build_flag_templates:
|
|
- "--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}}"
|
|
extra_files:
|
|
- web
|
|
- go.mod
|
|
- go.sum
|
|
- cmd
|
|
- internal
|
|
-
|
|
use: buildx
|
|
goos: linux
|
|
goarch: arm64
|
|
image_templates:
|
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8"
|
|
- "superseriousbusiness/{{ .ProjectName }}:latest-arm64v8"
|
|
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8{{ end }}"
|
|
build_flag_templates:
|
|
- "--platform=linux/arm64/v8"
|
|
- "--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:
|
|
- web
|
|
- go.mod
|
|
- go.sum
|
|
- cmd
|
|
- internal
|
|
-
|
|
use: buildx
|
|
goos: linux
|
|
goarch: arm
|
|
goarm: 6
|
|
image_templates:
|
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6"
|
|
- "superseriousbusiness/{{ .ProjectName }}:latest-armv6"
|
|
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-armv6{{ end }}"
|
|
build_flag_templates:
|
|
- "--platform=linux/arm/v6"
|
|
- "--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:
|
|
- web
|
|
- go.mod
|
|
- go.sum
|
|
- cmd
|
|
- internal
|
|
-
|
|
use: buildx
|
|
goos: linux
|
|
goarch: arm
|
|
goarm: 7
|
|
image_templates:
|
|
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7"
|
|
- "superseriousbusiness/{{ .ProjectName }}:latest-armv7"
|
|
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-armv7{{ end }}"
|
|
build_flag_templates:
|
|
- "--platform=linux/arm/v7"
|
|
- "--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:
|
|
- web
|
|
- go.mod
|
|
- go.sum
|
|
- cmd
|
|
- internal
|
|
docker_manifests:
|
|
- name_template: superseriousbusiness/{{ .ProjectName }}:{{ .Version }}
|
|
image_templates:
|
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64
|
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8
|
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6
|
|
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7
|
|
- name_template: superseriousbusiness/{{ .ProjectName }}:latest
|
|
image_templates:
|
|
- superseriousbusiness/{{ .ProjectName }}:latest-amd64
|
|
- superseriousbusiness/{{ .ProjectName }}:latest-arm64v8
|
|
- superseriousbusiness/{{ .ProjectName }}:latest-armv6
|
|
- superseriousbusiness/{{ .ProjectName }}:latest-armv7
|
|
- name_template: "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot{{ end }}"
|
|
image_templates:
|
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-amd64
|
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8
|
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv6
|
|
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv7
|
|
archives:
|
|
# https://goreleaser.com/customization/archive/
|
|
-
|
|
id: binary-release
|
|
files:
|
|
# standard release files
|
|
- LICENSE
|
|
- README.md
|
|
- CHANGELOG*
|
|
# web stuff minus source
|
|
- web/assets
|
|
- web/template
|
|
# example config files
|
|
- example/config.yaml
|
|
- example/gotosocial.service
|
|
-
|
|
id: web-assets
|
|
files:
|
|
- LICENSE
|
|
# just the web stuff minus source
|
|
- web/assets
|
|
- web/template
|
|
meta: true
|
|
name_template: "{{ .ProjectName }}_{{ .Version }}_web-assets"
|
|
checksum:
|
|
# https://goreleaser.com/customization/checksum/
|
|
name_template: 'checksums.txt'
|
|
snapshot:
|
|
# https://goreleaser.com/customization/snapshots/
|
|
name_template: "{{ incpatch .Version }}-SNAPSHOT"
|
|
source:
|
|
# https://goreleaser.com/customization/source/
|
|
enabled: true
|
|
name_template: "{{ .ProjectName }}-{{ .Version }}-source-code"
|