version: 2 project_name: gitea-runner before: hooks: - go mod tidy builds: - env: - CGO_ENABLED=0 goos: - darwin - linux - windows - freebsd goarch: - amd64 - arm - arm64 - loong64 - s390x - riscv64 goarm: - "5" - "6" - "7" ignore: - goos: darwin goarch: arm - goos: darwin goarch: ppc64le - goos: darwin goarch: s390x - goos: windows goarch: ppc64le - goos: windows goarch: s390x - goos: windows goarch: arm goarm: "5" - goos: windows goarch: arm goarm: "6" - goos: windows goarch: arm goarm: "7" - goos: windows goarch: arm64 - goos: freebsd goarch: ppc64le - goos: freebsd goarch: s390x - goos: freebsd goarch: arm goarm: "5" - goos: freebsd goarch: arm goarm: "6" - goos: freebsd goarch: arm goarm: "7" - goos: freebsd goarch: arm64 flags: - -trimpath ldflags: - -s -w -X gitea.com/gitea/runner/internal/pkg/ver.version={{ .Summary }} binary: >- {{ .ProjectName }}- {{- .Version }}- {{- .Os }}- {{- if eq .Arch "amd64" }}amd64 {{- else if eq .Arch "amd64_v1" }}amd64 {{- else if eq .Arch "386" }}386 {{- else }}{{ .Arch }}{{ end }} {{- if .Arm }}-{{ .Arm }}{{ end }} no_unique_dist_dir: true hooks: post: - cmd: xz -k -9 {{ .Path }} dir: ./dist/ - cmd: sh .goreleaser.checksum.sh {{ .Path }} - cmd: sh .goreleaser.checksum.sh {{ .Path }}.xz # Uploads every release artifact to Cloudflare R2. The `blobs:` pipe # isn't usable here since it authenticates from the global AWS_* env # with no per-entry credentials; `publishers:` supports per-entry # `env:` instead, so it's used to invoke scripts/upload-r2.sh once per # artifact. Custom publishers inherit almost nothing from the # environment, hence the explicit R2_* forwarding below. # # This publisher fires 109 times for 73 distinct keys because # goreleaser's release pipe already registers `release.extra_files` # as UploadableFile artifacts, and `internal/exec`'s filterArtifacts # appends this block's own extra_files with no de-duplication. It # can't be globbed away, since gobwas/glob (via goreleaser/fileglob) # has no substring-exclusion matcher. It's harmless: PUT is # idempotent, and the `./**.xz` glob below is kept deliberately so # this publisher declares its own complete file set rather than # implicitly depending on the `release:` block's globs. publishers: - name: cloudflare-r2 checksum: true extra_files: - glob: ./**.xz - glob: ./**.sha256 cmd: sh scripts/upload-r2.sh {{ abs .ArtifactPath }} gitea-runner/{{ .Version }}/{{ .ArtifactName }} env: - R2_ENDPOINT={{ index .Env "R2_ENDPOINT" }} - R2_BUCKET={{ index .Env "R2_BUCKET" }} - R2_ACCESS_KEY_ID={{ index .Env "R2_ACCESS_KEY_ID" }} - R2_SECRET_ACCESS_KEY={{ index .Env "R2_SECRET_ACCESS_KEY" }} archives: - formats: [binary] name_template: "{{ .Binary }}" allow_different_binary_count: true checksum: name_template: 'checksums.txt' extra_files: - glob: ./**.xz snapshot: version_template: "{{ .Branch }}-devel" nightly: version_template: "nightly" gitea_urls: api: https://gitea.com/api/v1 download: https://gitea.com release: extra_files: - glob: ./**.xz - glob: ./**.xz.sha256 # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json # vim: set ts=2 sw=2 tw=0 fo=cnqoj