project_name: OliveTin version: 2 before: hooks: - make service-prep - make windows-resources VERSION={{ .Version }} builds: - skip: '{{ isEnvSet "GORELEASER_SKIP_BUILD" }}' env: - CGO_ENABLED=0 binary: OliveTin main: . dir: service goos: - linux - windows - darwin - freebsd goarch: - amd64 - arm64 - arm - riscv64 goarm: - 5 # For old RPIs - 6 - 7 ignore: - goos: darwin goarch: arm # Mac does not work on [32bit] arm - goos: windows goarch: arm - goos: windows # Does anyone use Windows on arm64? goarch: arm64 ldflags: - -s -w -X main.version={{.Version}} -X main.commit={{.ShortCommit}} -X main.date={{ .CommitDate }} checksum: name_template: 'checksums.txt' extra_files: - glob: ./dist/OliveTin-windows-amd64.msi snapshot: version_template: "{{ .Branch }}-{{ .ShortCommit }}" changelog: sort: asc groups: - title: 'Security' regexp: '^.*?security(\([[:word:]]+\))??!?:.+$' order: 0 - title: 'Features' regexp: '^.*?feat.*?(\([[:word:]]+\))??!?:.+$' order: 1 - title: 'Bug fixes' regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$' order: 2 - title: Others order: 999 filters: exclude: - '^docs:' - '^test:' - '^cicd:' - '^chore:' - '^release:' - '^refactor:' - '^Merge branch' archives: - formats: tar.gz files: - config.yaml - LICENSE - README.md - src: Dockerfile.singlearch dst: Dockerfile - examples/backupScript.sh - webui - var name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}{{ .Arm }}" wrap_in_directory: true format_overrides: - goos: windows formats: zip # dockers_v2: single multi-platform build with buildx; keeps default provenance + SBOM. # Replaces legacy dockers + docker_manifests (avoids "is a manifest list" when attestations are on). dockers_v2: - dockerfile: Dockerfile.multiarches images: - docker.io/jamesread/olivetin - ghcr.io/olivetin/olivetin tags: - "{{ .Tag }}" - latest - latest-3k platforms: - linux/amd64 - linux/arm64 extra_files: - webui/ - var/entities/ - config.yaml - var/helper-actions/ - examples/backupScript.sh labels: org.opencontainers.image.revision: "{{ .FullCommit }}" org.opencontainers.image.version: "{{ .Tag }}" sbom: true nfpms: - id: default maintainer: James Read description: OliveTin is a web interface for running Linux shell commands. homepage: https://github.com/OliveTin/OliveTin license: AGPL-3.0 formats: - deb - rpm bindir: /usr/local/bin/ file_name_template: '{{ .PackageName }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}' contents: - src: var/systemd/OliveTin.service dst: /etc/systemd/system/OliveTin.service - src: webui/ dst: /var/www/olivetin/ type: tree - src: config.yaml dst: /etc/OliveTin/config.yaml type: "config|noreplace" - src: var/entities/* dst: /etc/OliveTin/entities/ type: "config|noreplace" - src: var/manpage/OliveTin.1.gz dst: /usr/share/man/man1/OliveTin.1.gz - id: openrc maintainer: James Read description: OliveTin is a web interface for running Linux shell commands. homepage: https://github.com/OliveTin/OliveTin license: AGPL-3.0 formats: - apk bindir: /usr/local/bin/ file_name_template: '{{ .PackageName }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}' contents: - src: var/openrc/OliveTin dst: /etc/init.d/OliveTin # Avoid type: tree for apk — nfpm writes GNU base-256 modes for walked # dirs (ModeDir), which apk-tools rejects (#761 / goreleaser/nfpm#1112). - src: webui/index.html dst: /var/www/olivetin/index.html - src: webui/assets/* dst: /var/www/olivetin/assets/ - src: config.yaml dst: /etc/OliveTin/config.yaml type: "config|noreplace" - src: var/entities/* dst: /etc/OliveTin/entities/ type: "config|noreplace" - src: var/manpage/OliveTin.1.gz dst: /usr/share/man/man1/OliveTin.1.gz # Sign and notarize darwin binaries via quill (no macOS runner required). # Skipped when MACOS_SIGN_P12 is unset so local/snapshot builds stay unsigned. notarize: macos: - enabled: '{{ isEnvSet "MACOS_SIGN_P12" }}' # Defaults to project_name when omitted; must match builds[].id (also project_name). sign: certificate: "{{.Env.MACOS_SIGN_P12}}" password: "{{.Env.MACOS_SIGN_PASSWORD}}" notarize: issuer_id: "{{.Env.MACOS_NOTARY_ISSUER_ID}}" key_id: "{{.Env.MACOS_NOTARY_KEY_ID}}" key: "{{.Env.MACOS_NOTARY_KEY}}" wait: true timeout: 30m release: # Stay draft until the sign-windows job replaces unsigned Windows assets and undrafts. draft: true extra_files: - glob: ./dist/OliveTin-windows-amd64.msi footer: | ## Container images (from GitHub) - `docker pull ghcr.io/olivetin/olivetin:{{ .Version }}` ## Container images ([on Docker Hub](https://hub.docker.com/r/jamesread/olivetin/tags?page=1&ordering=last_updated)) - `docker pull docker.io/jamesread/olivetin:{{ .Version }}` ## Upgrade warnings, or breaking changes - No such issues between the last release and this version. ## Useful links - [Which download do I need?](https://docs.olivetin.app/install/choose_package.html) - [Ask for help and chat with others users in the Discord community](https://discord.gg/jhYWWpNJ3v) Thanks for your interest in OliveTin!