before: hooks: - go mod download - go mod tidy builds: - id: ntfy_linux_amd64 binary: ntfy env: - CGO_ENABLED=1 # required for go-sqlite3 tags: [sqlite_omit_load_extension,osusergo,netgo] ldflags: - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [linux] goarch: [amd64] hooks: post: - upx "{{ .Path }}" # apt install upx - id: ntfy_linux_armv6 binary: ntfy env: - CGO_ENABLED=1 # required for go-sqlite3 - CC=arm-linux-gnueabi-gcc # apt install gcc-arm-linux-gnueabi tags: [sqlite_omit_load_extension,osusergo,netgo] ldflags: - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [linux] goarch: [arm] goarm: [6] # No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546 - id: ntfy_linux_armv7 binary: ntfy env: - CGO_ENABLED=1 # required for go-sqlite3 - CC=arm-linux-gnueabi-gcc # apt install gcc-arm-linux-gnueabi tags: [sqlite_omit_load_extension,osusergo,netgo] ldflags: - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [linux] goarch: [arm] goarm: [7] # No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546 - id: ntfy_linux_arm64 binary: ntfy env: - CGO_ENABLED=1 # required for go-sqlite3 - CC=aarch64-linux-gnu-gcc # apt install gcc-aarch64-linux-gnu tags: [sqlite_omit_load_extension,osusergo,netgo] ldflags: - "-linkmode=external -extldflags=-static -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [linux] goarch: [arm64] # No "upx" for ARM, see https://github.com/binwiederhier/ntfy/issues/191#issuecomment-1083406546 - id: ntfy_windows_amd64 binary: ntfy env: - CGO_ENABLED=0 # explicitly disable, since we don't need go-sqlite3 tags: [noserver] # don't include server files ldflags: - "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [windows] goarch: [amd64] hooks: post: - upx "{{ .Path }}" # apt install upx - id: ntfy_darwin_all binary: ntfy env: - CGO_ENABLED=0 # explicitly disable, since we don't need go-sqlite3 tags: [noserver] # don't include server files ldflags: - "-X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}}" goos: [darwin] goarch: [amd64, arm64] # will be combined to "universal binary" (see below) nfpms: - package_name: ntfy homepage: https://heckel.io/ntfy maintainer: Philipp C. Heckel description: Simple pub-sub notification service license: Apache 2.0 formats: - deb - rpm bindir: /usr/bin contents: - src: server/server.yml dst: /etc/ntfy/server.yml type: "config|noreplace" - src: server/ntfy.service dst: /lib/systemd/system/ntfy.service - src: client/client.yml dst: /etc/ntfy/client.yml type: "config|noreplace" - src: client/ntfy-client.service dst: /lib/systemd/system/ntfy-client.service - dst: /var/cache/ntfy type: dir - dst: /var/cache/ntfy/attachments type: dir - dst: /var/lib/ntfy type: dir - dst: /usr/share/ntfy/logo.png src: web/public/static/img/ntfy.png scripts: preinstall: "scripts/preinst.sh" postinstall: "scripts/postinst.sh" preremove: "scripts/prerm.sh" postremove: "scripts/postrm.sh" archives: - id: ntfy_linux builds: - ntfy_linux_amd64 - ntfy_linux_armv6 - ntfy_linux_armv7 - ntfy_linux_arm64 wrap_in_directory: true files: - LICENSE - README.md - server/server.yml - server/ntfy.service - client/client.yml - client/ntfy-client.service replacements: amd64: x86_64 - id: ntfy_windows builds: - ntfy_windows_amd64 format: zip wrap_in_directory: true files: - LICENSE - README.md - client/client.yml replacements: amd64: x86_64 - id: ntfy_darwin builds: - ntfy_darwin_all wrap_in_directory: true files: - LICENSE - README.md - client/client.yml replacements: darwin: macOS universal_binaries: - id: ntfy_darwin_all replace: true name_template: ntfy checksum: name_template: 'checksums.txt' snapshot: name_template: "{{ .Tag }}-next" changelog: sort: asc filters: exclude: - '^docs:' - '^test:' dockers: - image_templates: - &amd64_image "binwiederhier/ntfy:{{ .Tag }}-amd64" use: buildx dockerfile: Dockerfile goarch: amd64 build_flag_templates: - "--platform=linux/amd64" - image_templates: - &arm64v8_image "binwiederhier/ntfy:{{ .Tag }}-arm64v8" use: buildx dockerfile: Dockerfile goarch: arm64 build_flag_templates: - "--platform=linux/arm64/v8" - image_templates: - &armv7_image "binwiederhier/ntfy:{{ .Tag }}-armv7" use: buildx dockerfile: Dockerfile goarch: arm goarm: 7 build_flag_templates: - "--platform=linux/arm/v7" - image_templates: - &armv6_image "binwiederhier/ntfy:{{ .Tag }}-armv6" use: buildx dockerfile: Dockerfile goarch: arm goarm: 6 build_flag_templates: - "--platform=linux/arm/v6" docker_manifests: - name_template: "binwiederhier/ntfy:latest" image_templates: - *amd64_image - *arm64v8_image - *armv7_image - *armv6_image - name_template: "binwiederhier/ntfy:{{ .Tag }}" image_templates: - *amd64_image - *arm64v8_image - *armv7_image - *armv6_image