mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-28 17:52:25 -05:00
Goreleaser (#241)
* add goreleaser tooling * add files + hook * update hooks * allow passing build-dir using cli args * build tweaks * tweak more * update drone and goreleaser * chill out tests * remove postgres * docker push on snapshot * update releaser
This commit is contained in:
parent
142f37f1bd
commit
d515c9f1ec
14 changed files with 253 additions and 136 deletions
85
.goreleaser.yml
Normal file
85
.goreleaser.yml
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
# https://goreleaser.com
|
||||
project_name: gotosocial
|
||||
before:
|
||||
# https://goreleaser.com/customization/hooks/
|
||||
hooks:
|
||||
# tidy up and lint
|
||||
- go mod tidy
|
||||
- go fmt ./...
|
||||
# generate the swagger.yaml file using go-swagger and bundle it into the assets directory
|
||||
- swagger generate spec -o docs/api/swagger.yaml --scan-models
|
||||
- sed -i "s/REPLACE_ME/{{ incpatch .Version }}/" docs/api/swagger.yaml
|
||||
- cp docs/api/swagger.yaml web/assets/swagger.yaml
|
||||
# install and bundle the web assets and styling
|
||||
- yarn install --cwd web/gotosocial-styling
|
||||
- node web/gotosocial-styling/index.js --build-dir="web/assets"
|
||||
builds:
|
||||
# https://goreleaser.com/customization/build/
|
||||
-
|
||||
main: ./cmd/gotosocial
|
||||
binary: gotosocial
|
||||
ldflags:
|
||||
- -s
|
||||
- -w
|
||||
- -extldflags
|
||||
- -static
|
||||
- -X main.Commit={{.Commit}}
|
||||
- -X main.Version={{.Version}}
|
||||
tags:
|
||||
- netgo
|
||||
- osusergo
|
||||
- static_build
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
goos:
|
||||
- linux
|
||||
- freebsd
|
||||
goarch:
|
||||
- 386
|
||||
- amd64
|
||||
- arm
|
||||
- arm64
|
||||
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/
|
||||
-
|
||||
goos: linux
|
||||
goarch: amd64
|
||||
image_templates:
|
||||
- "superseriousbusiness/gotosocial:latest"
|
||||
- "superseriousbusiness/gotosocial:{{ .Version }}"
|
||||
build_flag_templates:
|
||||
- "--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
|
||||
archives:
|
||||
# https://goreleaser.com/customization/archive/
|
||||
-
|
||||
files:
|
||||
# standard release files
|
||||
- LICENSE
|
||||
- README.md
|
||||
- CHANGELOG*
|
||||
# web assets and example config
|
||||
- web
|
||||
- example/config.yaml
|
||||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue