Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 25 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -306,11 +306,33 @@ jobs:
with:
# Read the version from go.mod rather than duplicating it here.
go-version-file: go.mod
# .goreleaser.yml has dockers + docker_manifests; multi-arch images
# cannot cross-build without QEMU.
docker: true
# TEMPORARY: container images are skipped, so the CLI release can ship.
#
# go-binary-release.yml's `goreleaser` job declares `permissions: contents:
# write` and nothing else, and once a permissions block exists everything
# unlisted is `none` -- so its GITHUB_TOKEN has `packages: none`. The
# called workflow's block is the authoritative one for its own jobs, so the
# `packages: write` this job declares below cannot widen it. The push then
# fails with
#
# denied: installation not allowed to Write organization package
#
# after a full six-minute build. Granting the repo write access on the
# GHCR package does not help either: the token has no packages scope to
# exercise in the first place.
#
# `docker: false` alone would make it worse, not better -- that input only
# skips QEMU, Buildx and the registry *login*, while .goreleaser.yml still
# has dockers/docker_manifests, so GoReleaser would build the images and
# push them unauthenticated. The pipe has to be skipped in GoReleaser
# itself, and then the setup steps are simply unnecessary.
#
# Revert both lines once xraph/workflows grants `packages: write` and its
# v1 tag moves: https://github.com/xraph/workflows/pull/1
docker: false
registry: ghcr.io
goreleaser-version: '~> v2'
goreleaser-args: 'release --clean --skip=docker'
secrets:
GORELEASER_TOKEN: ${{ secrets.GORELEASER_TOKEN }}
FURY_TOKEN: ${{ secrets.FURY_TOKEN }}
Expand Down
Loading