Repository navigation
build: upgrade goreleaser, fix config - #930
Merged
Merged
Conversation
This one upgrades the goreleaser version, which we need for simplifying publishing of arm64 OCI images.
Our current goreleaser config uses features that were deprecated in newer versions, related to [Homebrew][1] and [OCI image][2] publishing. I did my best to try to port these over to the new config, but the published artifacts should be tested to confirm there were no issues. I did confirm locally that the new config is valid according to the upgraded goreleaser version: ```sh root@fde01a25ad2f:/app# goreleaser --version ____ ____ _ / ___| ___ | _ \ ___| | ___ __ _ ___ ___ _ __ | | _ / _ \| |_) / _ \ |/ _ \/ _` / __|/ _ \ '__| | |_| | (_) | _ < __/ | __/ (_| \__ \ __/ | \____|\___/|_| \_\___|_|\___|\__,_|___/\___|_| goreleaser: Release engineering, simplified. https://goreleaser.com GitVersion: 2.18.3 GitCommit: 1942d44355492f44cd3774c57bd3c27fe544dfe9 GitTreeState: false BuildDate: 2026-10-08T13:16:20Z BuiltBy: goreleaser GoVersion: go1.27.1 Compiler: gc ModuleSum: h1:QZyKdRAHzffgURxr0cODOjAE0Ywma7p43/fbwCi0mjs= Platform: linux/amd64 root@fde01a25ad2f:/app# goreleaser check • checking path=.goreleaser.yml • 1 configuration file(s) validated • thanks for using GoReleaser! ``` [1]: https://goreleaser.com/resources/deprecations/#brews [2]: https://goreleaser.com/resources/deprecations/#dockers
pierre-emmanuelJ
approved these changes
Oct 13, 2026
kobajagi
approved these changes
Oct 13, 2026
Member
Author
|
I did some more local tests and updated the description. I'll make a release when this is merged. The govulncheck failure is unrelated, and I'll fix it in a separate PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This upgrades go.mk to v2.0.7, and indirectly goreleaser to v2.18.3, which is needed to simplify the publishing of arm64 OCI images, as explained in exoscale/go.mk#53.
Since the current v2.10.2 version, some goreleaser features were deprecated, and the configuration structure was substantially changed. I did my best to try to port these over to the new structure, but the published artifacts should be tested to confirm there were no issues.
Part of sc-203018
Checklist
(For exoscale contributors)
CHANGELOG.md)Testing
I confirmed locally that the new config is valid with goreleaser v2.18.3:
The actual test will have to be done in the release pipeline. Maybe we can trigger it on this branch?
I also tested
buildandrelease --skip=publish:Expand
$ goreleaser build • loading environment variables • getting and validating git state • using tags previous=v1.102.1 current=v1.103.0 • parsing tag • setting defaults • running before hooks • running hook=make manpages completions • took: 22s • took: 22s • ensuring distribution directory • setting up metadata • writing release metadata • loading go mod information • build prerequisites • building binaries • building paths=. binaries=exo target=linux_arm64_v8.0 • building paths=. binaries=exo target=darwin_amd64_v1 • building paths=. binaries=exo target=linux_arm_6 • building paths=. binaries=exo target=linux_amd64_v1 • building paths=. binaries=exo target=darwin_arm64_v8.0 • building paths=. binaries=exo target=linux_arm_7 • building paths=. binaries=exo target=windows_amd64_v1 • building paths=. binaries=exo target=windows_arm64_v8.0 • building paths=. binaries=exo target=openbsd_amd64_v1 • took: 2m11s • universal binaries • creating from 2 binaries id=exoscale-cli binary=dist/exoscale-cli_darwin_all/exo • writing artifacts metadata • build succeeded after 2m33s • thanks for using GoReleaser! $ goreleaser release --skip=publish • starting release • skipping announce and publish... • loading environment variables • getting and validating git state • using tags previous=v1.102.1 current=v1.103.0 • parsing tag • setting defaults • running before hooks • running hook=make manpages completions • took: 9s • ensuring distribution directory • setting up metadata • writing release metadata • loading go mod information • build prerequisites • building binaries • building paths=. binaries=exo target=darwin_arm64_v8.0 • building paths=. binaries=exo target=linux_amd64_v1 • building paths=. binaries=exo target=linux_arm_6 • building paths=. binaries=exo target=windows_amd64_v1 • building paths=. binaries=exo target=linux_arm64_v8.0 • building paths=. binaries=exo target=windows_arm64_v8.0 • building paths=. binaries=exo target=darwin_amd64_v1 • building paths=. binaries=exo target=linux_arm_7 • building paths=. binaries=exo target=openbsd_amd64_v1 • universal binaries • creating from 2 binaries id=exoscale-cli binary=dist/exoscale-cli_darwin_all/exo • generating changelog • archives • archiving name=dist/exoscale-cli_1.103.0_linux_armv6.tar.gz • archiving name=dist/exoscale-cli_1.103.0_windows_arm64.zip • archiving name=dist/exoscale-cli_1.103.0_linux_armv7.tar.gz • archiving name=dist/exoscale-cli_1.103.0_windows_amd64.zip • archiving name=dist/exoscale-cli_1.103.0_openbsd_amd64.tar.gz • archiving name=dist/exoscale-cli_1.103.0_darwin_all.tar.gz • archiving name=dist/exoscale-cli_1.103.0_linux_arm64.tar.gz • archiving name=dist/exoscale-cli_1.103.0_linux_amd64.tar.gz • creating source archive • creating source archive file=dist/exoscale-cli_1.103.0.tar.gz • linux packages • creating package=exoscale-cli format=rpm arch=arm7 file=dist/exoscale-cli_1.103.0_linux_armv7.rpm • creating package=exoscale-cli format=rpm arch=arm64v8.0 file=dist/exoscale-cli_1.103.0_linux_arm64.rpm • creating package=exoscale-cli format=deb arch=arm6 file=dist/exoscale-cli_1.103.0_linux_armv6.deb • creating package=exoscale-cli format=deb arch=arm64v8.0 file=dist/exoscale-cli_1.103.0_linux_arm64.deb • creating package=exoscale-cli format=rpm arch=amd64v1 file=dist/exoscale-cli_1.103.0_linux_amd64.rpm • creating package=exoscale-cli format=deb arch=arm7 file=dist/exoscale-cli_1.103.0_linux_armv7.deb • creating package=exoscale-cli format=deb arch=amd64v1 file=dist/exoscale-cli_1.103.0_linux_amd64.deb • creating package=exoscale-cli format=rpm arch=arm6 file=dist/exoscale-cli_1.103.0_linux_armv6.rpm • calculating checksums • signing artifacts • signing cmd=gpg artifact=exoscale-cli_1.103.0_linux_arm64.tar.gz signature=dist/exoscale-cli_1.103.0_linux_arm64.tar.gz.sig ⨯ release failed after 24s error=exit status 2 message=could not sign artifact cmd=gpg artifact=exoscale-cli_1.103.0_linux_arm64.tar.gz output= │ gpg: all values passed to '--default-key' ignored │ gpg: no default secret key: No secret key │ gpg: signing failed: No secret keybuildpassed, but it doesn't package anything, and release fails because of a missing GPG key, and I don't think it would test the Homebrew or OCI image publishing paths either. So we have to YOLO this and if it breaks the release, then we will fix it in the next one...