# 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/{{ .ProjectName }}:latest" - "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64" 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 - goos: linux goarch: arm64 image_templates: # - "superseriousbusiness/{{ .ProjectName }}:latest" - "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8" 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 - goos: linux goarch: arm image_templates: # - "superseriousbusiness/{{ .ProjectName }}:latest" - "superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7" 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 docker_manifests: - name_template: superseriousbusiness/{{ .ProjectName }}:{{ .Version }} image_templates: - superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64 - superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8 - superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7 - name_template: superseriousbusiness/{{ .ProjectName }}:latest image_templates: - superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-amd64 - superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-arm64v8 - superseriousbusiness/{{ .ProjectName }}:{{ .Version }}-armv7 archives: # https://goreleaser.com/customization/archive/ - files: # standard release files - LICENSE - README.md - CHANGELOG* # web assets - web # example config files - example/config.yaml - example/gotosocial.service 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