2021-09-24 13:14:20 +02:00
# 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
2022-09-28 19:30:40 +02:00
- swagger generate spec --scan-models --exclude-deps -o web/assets/swagger.yaml
2022-06-09 12:51:19 +02:00
- sed -i "s/REPLACE_ME/{{ incpatch .Version }}/" web/assets/swagger.yaml
2023-10-05 16:06:19 +02:00
# Install web deps + bundle web assets
- yarn --cwd ./web/source install
2023-10-17 12:46:06 +02:00
- yarn --cwd ./web/source ts-patch install # https://typia.io/docs/setup/#manual-setup
2023-10-05 16:06:19 +02:00
- yarn --cwd ./web/source build
2021-09-24 13:14:20 +02:00
builds :
# https://goreleaser.com/customization/build/
2024-10-10 18:15:02 +02:00
# DEFAULT WASM SQLITE BINARY BUILDS
2021-09-24 13:14:20 +02:00
-
2024-10-10 18:15:02 +02:00
id : gotosocial
2021-09-24 13:14:20 +02:00
main : ./cmd/gotosocial
binary : gotosocial
ldflags :
- -s
- -w
- -extldflags
- -static
- -X main.Version={{.Version}}
tags :
- netgo
- osusergo
- static_build
2023-08-01 14:47:53 +02:00
- kvformat
- timetzdata
2023-12-27 11:23:52 +01:00
- >-
{{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }}
2024-10-10 18:15:02 +02:00
env :
- CGO_ENABLED=0
goos :
- linux
- freebsd
- openbsd
goarch :
- 386
- amd64
- arm
- arm64
goarm :
- 6
- 7
ignore :
# build freebsd + openbsd only for amd64
- goos : freebsd
goarch : arm64
- goos : freebsd
goarch : arm
- goos : freebsd
goarch : 386
- goos : openbsd
goarch : arm64
- goos : openbsd
goarch : arm
- goos : openbsd
goarch : 386
mod_timestamp : "{{ .CommitTimestamp }}"
# MODERNC SQLITE BINARY BUILDS
-
id : gotosocial_moderncsqlite
main : ./cmd/gotosocial
binary : gotosocial
ldflags :
- -s
- -w
- -extldflags
- -static
- -X main.Version={{.Version}}
tags :
- netgo
- osusergo
- static_build
- kvformat
- timetzdata
2024-05-28 15:20:40 +02:00
- >-
2024-10-10 18:15:02 +02:00
{{ if and (index .Env "DEBUG") (.Env.DEBUG) }}debugenv{{ end }}
- moderncsqlite3
2021-09-24 13:14:20 +02:00
env :
- CGO_ENABLED=0
goos :
- linux
- freebsd
2024-10-10 18:15:02 +02:00
- openbsd
2021-09-24 13:14:20 +02:00
goarch :
- 386
- amd64
- arm
- arm64
2022-02-27 13:03:37 +01:00
goarm :
- 6
- 7
2021-09-24 13:14:20 +02:00
ignore :
2024-10-10 18:15:02 +02:00
# build freebsd + openbsd only for amd64
2021-09-24 13:14:20 +02:00
- goos : freebsd
goarch : arm64
- goos : freebsd
goarch : arm
- goos : freebsd
goarch : 386
2024-10-10 18:15:02 +02:00
- goos : openbsd
goarch : arm64
- goos : openbsd
goarch : arm
- goos : openbsd
goarch : 386
2021-09-24 13:14:20 +02:00
mod_timestamp : "{{ .CommitTimestamp }}"
dockers :
# https://goreleaser.com/customization/docker/
2024-10-10 18:15:02 +02:00
# DEFAULT WASM SQLITE DOCKER BUILDS
2021-09-24 13:14:20 +02:00
-
2022-02-27 13:03:37 +01:00
use : buildx
2021-09-24 13:14:20 +02:00
goos : linux
goarch : amd64
2024-10-10 18:15:02 +02:00
id : amd64
ids :
- gotosocial
2021-09-24 13:14:20 +02:00
image_templates :
2022-02-26 10:45:23 +01:00
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64"
2022-02-27 13:03:37 +01:00
- "superseriousbusiness/{{ .ProjectName }}:latest-amd64"
2024-03-10 11:10:30 +01:00
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-amd64{{ end }}"
2021-09-24 13:14:20 +02:00
build_flag_templates :
2022-02-27 13:03:37 +01:00
- "--platform=linux/amd64"
2021-09-24 13:14:20 +02:00
- "--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
2022-06-09 12:51:19 +02:00
- go.mod
- go.sum
- cmd
- internal
2022-02-26 10:45:23 +01:00
-
2022-02-27 13:03:37 +01:00
use : buildx
2022-02-26 10:45:23 +01:00
goos : linux
goarch : arm64
2024-10-10 18:15:02 +02:00
id : arm64v8
ids :
- gotosocial
2022-02-26 10:45:23 +01:00
image_templates :
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8"
2022-02-27 13:03:37 +01:00
- "superseriousbusiness/{{ .ProjectName }}:latest-arm64v8"
2024-03-10 11:10:30 +01:00
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8{{ end }}"
2022-02-26 10:45:23 +01:00
build_flag_templates :
2022-02-27 13:03:37 +01:00
- "--platform=linux/arm64/v8"
2022-02-26 10:45:23 +01:00
- "--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
2022-06-09 12:51:19 +02:00
- go.mod
- go.sum
- cmd
- internal
2022-02-26 10:45:23 +01:00
-
2022-02-27 13:03:37 +01:00
use : buildx
2022-02-26 10:45:23 +01:00
goos : linux
goarch : arm
2022-02-27 13:03:37 +01:00
goarm : 6
2024-10-10 18:15:02 +02:00
id : armv6
ids :
- gotosocial
2022-02-27 13:03:37 +01:00
image_templates :
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6"
- "superseriousbusiness/{{ .ProjectName }}:latest-armv6"
2024-03-10 11:10:30 +01:00
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-armv6{{ end }}"
2022-02-27 13:03:37 +01:00
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
2022-06-09 12:51:19 +02:00
- go.mod
- go.sum
- cmd
- internal
2022-02-27 13:03:37 +01:00
-
use : buildx
goos : linux
goarch : arm
goarm : 7
2024-10-10 18:15:02 +02:00
id : armv7
ids :
- gotosocial
2022-02-26 10:45:23 +01:00
image_templates :
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7"
2022-02-27 13:03:37 +01:00
- "superseriousbusiness/{{ .ProjectName }}:latest-armv7"
2024-03-10 11:10:30 +01:00
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-armv7{{ end }}"
2022-02-26 10:45:23 +01:00
build_flag_templates :
2022-02-27 13:03:37 +01:00
- "--platform=linux/arm/v7"
2022-02-26 10:45:23 +01:00
- "--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
2022-06-09 12:51:19 +02:00
- go.mod
- go.sum
- cmd
- internal
2024-10-10 18:15:02 +02:00
# MODERNC SQLITE DOCKER BUILDS
-
use : buildx
goos : linux
goarch : amd64
id : amd64-moderncsqlite
ids :
- gotosocial_moderncsqlite
image_templates :
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64-moderncsqlite"
- "superseriousbusiness/{{ .ProjectName }}:latest-amd64-moderncsqlite"
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-amd64-moderncsqlite{{ 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
id : arm64v8-moderncsqlite
ids :
- gotosocial_moderncsqlite
image_templates :
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8-moderncsqlite"
- "superseriousbusiness/{{ .ProjectName }}:latest-arm64v8-moderncsqlite"
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8-moderncsqlite{{ 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
id : armv6-moderncsqlite
ids :
- gotosocial_moderncsqlite
image_templates :
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6-moderncsqlite"
- "superseriousbusiness/{{ .ProjectName }}:latest-armv6-moderncsqlite"
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-armv6-moderncsqlite{{ 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
id : armv7-moderncsqlite
ids :
- gotosocial_moderncsqlite
image_templates :
- "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7-moderncsqlite"
- "superseriousbusiness/{{ .ProjectName }}:latest-armv7-moderncsqlite"
- "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-armv7-moderncsqlite{{ 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
2022-02-26 10:45:23 +01:00
docker_manifests :
2024-10-10 18:15:02 +02:00
# DEFAULT WASM SQLITE BUILDS
2022-02-26 10:45:23 +01:00
- name_template : superseriousbusiness/{{ .ProjectName }}:{{ .Version }}
image_templates :
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8
2022-02-27 13:03:37 +01:00
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6
2022-02-26 10:45:23 +01:00
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7
- name_template : superseriousbusiness/{{ .ProjectName }}:latest
image_templates :
2022-02-27 13:03:37 +01:00
- superseriousbusiness/{{ .ProjectName }}:latest-amd64
- superseriousbusiness/{{ .ProjectName }}:latest-arm64v8
- superseriousbusiness/{{ .ProjectName }}:latest-armv6
- superseriousbusiness/{{ .ProjectName }}:latest-armv7
2024-03-10 11:10:30 +01:00
- name_template : "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot{{ end }}"
2022-11-17 13:24:49 +01:00
image_templates :
- superseriousbusiness/{{ .ProjectName }}:snapshot-amd64
- superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv6
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv7
2024-10-10 18:15:02 +02:00
# MODERNC SQLITE BUILDS
- name_template : superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-moderncsqlite
image_templates :
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv6-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7-moderncsqlite
- name_template : superseriousbusiness/{{ .ProjectName }}:latest-moderncsqlite
image_templates :
- superseriousbusiness/{{ .ProjectName }}:latest-amd64-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:latest-arm64v8-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:latest-armv6-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:latest-armv7-moderncsqlite
- name_template : "{{ if .IsSnapshot }}superseriousbusiness/{{ .ProjectName }}:snapshot-moderncsqlite{{ end }}"
image_templates :
- superseriousbusiness/{{ .ProjectName }}:snapshot-amd64-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:snapshot-arm64v8-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv6-moderncsqlite
- superseriousbusiness/{{ .ProjectName }}:snapshot-armv7-moderncsqlite
2021-09-24 13:14:20 +02:00
archives :
# https://goreleaser.com/customization/archive/
2024-10-10 18:15:02 +02:00
# DEFAULT WASM SQLITE BUILD
-
id : gotosocial
builds :
- gotosocial
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
name_template : "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 \"v1\") }}{{ .Amd64 }}{{ end }}"
# MODERNC SQLITE BUILD
2021-09-24 13:14:20 +02:00
-
2024-10-10 18:15:02 +02:00
id : gotosocial_moderncsqlite
builds :
- gotosocial_moderncsqlite
2021-09-24 13:14:20 +02:00
files :
# standard release files
- LICENSE
- README.md
- CHANGELOG*
2022-06-19 16:44:38 +02:00
# web stuff minus source
2022-06-09 12:51:19 +02:00
- web/assets
- web/template
2021-12-12 15:54:51 +01:00
# example config files
2021-09-24 13:14:20 +02:00
- example/config.yaml
2021-12-12 15:54:51 +01:00
- example/gotosocial.service
2024-10-10 18:15:02 +02:00
name_template : "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 \"v1\") }}{{ .Amd64 }}{{ end }}_moderncsqlite"
2022-06-19 16:44:38 +02:00
-
id : web-assets
files :
- LICENSE
# just the web stuff minus source
- web/assets
- web/template
meta : true
name_template : "{{ .ProjectName }}_{{ .Version }}_web-assets"
2021-09-24 13:14:20 +02:00
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/
2022-07-03 12:01:13 +02:00
enabled : true
name_template : "{{ .ProjectName }}-{{ .Version }}-source-code"