Skip to content

add a release workflow powered by goreleaser#35

Merged
mrhillsman merged 2 commits into
opdev:mainfrom
OchiengEd:setup_goreleaser
Mar 18, 2026
Merged

add a release workflow powered by goreleaser#35
mrhillsman merged 2 commits into
opdev:mainfrom
OchiengEd:setup_goreleaser

Conversation

@OchiengEd

Copy link
Copy Markdown
Contributor

This commit adds a GitHub workflow that will build binaries and images when a tag is created.

The included Dockefile.ci is single stage as it uses binaries created by goreleaser to build an image.

Signed-off-by: Edmund Ochieng <ochienged@gmail.com>
@exe-prow-github-app
exe-prow-github-app Bot requested a review from acmenezes March 17, 2026 19:38
@exe-prow-github-app exe-prow-github-app Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 17, 2026
Fix spelling error

@mrhillsman mrhillsman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@exe-prow-github-app exe-prow-github-app Bot added the lgtm Indicates that a PR is ready to be merged. label Mar 18, 2026
@mrhillsman

Copy link
Copy Markdown
Contributor

Build did not complete locally but that is not a result of this PR. Process got the point where it was sufficient.

❯ PODMAN_NETWORK_DRIVER="slirp4netns" DOCKER_HOST="unix:///run/user/$(id -u)/podman/podman.sock" act --privileged -s QUAY_USERNAME='' -s QUAY_ROBOT_TOKEN='' --job release --eventpath tmp/event.json
INFO[0000] Using docker host 'unix:///run/user/1000/podman/podman.sock', and daemon socket 'unix:///run/user/1000/podman/podman.sock'
WARN[0000] --privileged is deprecated and will be removed soon, please switch to cli: --container-options "--privileged" or .actrc: --container-options --privileged.
[Goreleaser/release] ⭐ Run Set up job
[Goreleaser/release] 🚀 Start image=catthehacker/ubuntu:act-latest
[Goreleaser/release] 🐳 docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
[Goreleaser/release] 🐳 docker create image=catthehacker/ubuntu:act-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Goreleaser/release] 🐳 docker run image=catthehacker/ubuntu:act-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[Goreleaser/release] 🐳 docker exec cmd=[node --no-warnings -e console.log(process.execPath)] user= workdir=
[Goreleaser/release] ✅ Success - Set up job
[Goreleaser/release] ☁ git clone 'https://github.com/actions/setup-go' # ref=v6
[Goreleaser/release] Non-terminating error while running 'git clone': some refs were not updated
[Goreleaser/release] ☁ git clone 'https://github.com/docker/login-action' # ref=v4
[Goreleaser/release] Non-terminating error while running 'git clone': some refs were not updated
[Goreleaser/release] ☁ git clone 'https://github.com/goreleaser/goreleaser-action' # ref=v7
[Goreleaser/release] ⭐ Run Main actions/checkout@v6
[Goreleaser/release] 🐳 docker cp src=/home/mrhillsman/Development/goland/virtwork/. dst=/home/mrhillsman/Development/goland/virtwork
[Goreleaser/release] ✅ Success - Main actions/checkout@v6 [124.383424ms]
[Goreleaser/release] ⭐ Run Main Setup Go
[Goreleaser/release] 🐳 docker cp src=/home/mrhillsman/.cache/act/actions-setup-go@v6/ dst=/var/run/act/actions/actions-setup-go@v6/
[Goreleaser/release] 🐳 docker exec cmd=[/opt/acttoolcache/node/24.14.0/x64/bin/node /var/run/act/actions/actions-setup-go@v6/dist/setup/index.js] user= workdir=
| Setup go version spec 1.25.0
| Found in cache @ /opt/hostedtoolcache/go/1.25.0/x64
| Added go to the path
| Successfully set up Go version 1.25.0
| [command]/opt/hostedtoolcache/go/1.25.0/x64/bin/go env GOMODCACHE
| [command]/opt/hostedtoolcache/go/1.25.0/x64/bin/go env GOCACHE
| /root/go/pkg/mod
| /root/.cache/go-build
| Cache is not found
[Goreleaser/release] ❓ add-matcher /run/act/actions/actions-setup-go@v6/matchers.json
| go version go1.25.0 linux/amd64
|
[Goreleaser/release] ❓ ::group::go env
| AR='ar'
| CC='gcc'
| CGO_CFLAGS='-O2 -g'
| CGO_CPPFLAGS=''
| CGO_CXXFLAGS='-O2 -g'
| CGO_ENABLED='1'
| CGO_FFLAGS='-O2 -g'
| CGO_LDFLAGS='-O2 -g'
| CXX='g++'
| GCCGO='gccgo'
| GO111MODULE=''
| GOAMD64='v1'
| GOARCH='amd64'
| GOAUTH='netrc'
| GOBIN=''
| GOCACHE='/root/.cache/go-build'
| GOCACHEPROG=''
| GODEBUG=''
| GOENV='/root/.config/go/env'
| GOEXE=''
| GOEXPERIMENT=''
| GOFIPS140='off'
| GOFLAGS=''
| GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2598329631=/tmp/go-build -gno-record-gcc-switches'
| GOHOSTARCH='amd64'
| GOHOSTOS='linux'
| GOINSECURE=''
| GOMOD='/home/mrhillsman/Development/goland/virtwork/go.mod'
| GOMODCACHE='/root/go/pkg/mod'
| GONOPROXY=''
| GONOSUMDB=''
| GOOS='linux'
| GOPATH='/root/go'
| GOPRIVATE=''
| GOPROXY='https://proxy.golang.org,direct'
| GOROOT='/opt/hostedtoolcache/go/1.25.0/x64'
| GOSUMDB='sum.golang.org'
| GOTELEMETRY='local'
| GOTELEMETRYDIR='/root/.config/go/telemetry'
| GOTMPDIR=''
| GOTOOLCHAIN='local'
| GOTOOLDIR='/opt/hostedtoolcache/go/1.25.0/x64/pkg/tool/linux_amd64'
| GOVCS=''
| GOVERSION='go1.25.0'
| GOWORK=''
| PKG_CONFIG='pkg-config'
|
[Goreleaser/release] ❓ ::endgroup::
[Goreleaser/release] ✅ Success - Main Setup Go [418.414767ms]
[Goreleaser/release] ⚙ ::set-env:: GOTOOLCHAIN=local
[Goreleaser/release] ⚙ ::set-output:: cache-hit=false
[Goreleaser/release] ⚙ ::set-output:: go-version=1.25.0
[Goreleaser/release] ⚙ ::add-path:: /opt/hostedtoolcache/go/1.25.0/x64/bin
[Goreleaser/release] ⚙ ::add-path:: /root/go/bin
[Goreleaser/release] ⭐ Run Main Login to Quay.io
[Goreleaser/release] 🐳 docker cp src=/home/mrhillsman/.cache/act/docker-login-action@v4/ dst=/var/run/act/actions/docker-login-action@v4/
[Goreleaser/release] 🐳 docker exec cmd=[/opt/acttoolcache/node/24.14.0/x64/bin/node /var/run/act/actions/docker-login-action@v4/dist/index.js] user= workdir=
| Logging into quay.io...
| Login Succeeded!
[Goreleaser/release] ✅ Success - Main Login to Quay.io [827.983226ms]
[Goreleaser/release] ⭐ Run Main Run GoReleaser
[Goreleaser/release] 🐳 docker cp src=/home/mrhillsman/.cache/act/goreleaser-goreleaser-action@v7/ dst=/var/run/act/actions/goreleaser-goreleaser-action@v7/
[Goreleaser/release] 🐳 docker exec cmd=[/opt/acttoolcache/node/24.14.0/x64/bin/node /var/run/act/actions/goreleaser-goreleaser-action@v7/dist/index.js] user= workdir=
| Downloading https://github.com/goreleaser/goreleaser/releases/download/v2.14.3/goreleaser_Linux_x86_64.tar.gz
| Extracting GoReleaser
| [command]/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C /tmp/b8b77771-56df-4e32-bcca-ff5b4bff1b2e -f /tmp/79f57a12-ea1c-49ea-8d9d-624a9cf8b200
| GoReleaser ~> v2 installed successfully
| [command]/opt/hostedtoolcache/goreleaser-action/2.14.3/x64/goreleaser release --clean
| • cleaning distribution directory
| • loading environment variables
| • using token from $GITHUB_TOKEN
| • getting and validating git state
| • couldn't find any tags before "v0.0.1"
| • git state commit=d5e96567c6730dd7ae782a8aab440c36329d8c3a branch=setup_goreleaser current_tag=v0.0.1 previous_tag= dirty=false
| • parsing tag
| • setting defaults
| • running before hooks
| • running hook=go mod tidy
| • running hook=go generate ./...
| • ensuring distribution directory
| • setting up metadata
| • writing release metadata
| • loading go mod information
| • build prerequisites
| • building binaries
| • building binary=dist/linux-amd64_linux_amd64_v1/virtwork
| • took: 24s
| • generating changelog
| • archives
| • archiving name=dist/virtwork_Linux_x86_64.tar.gz
| • calculating checksums
| • publishing
| • docker images (v2)
| • dockers_v2 is experimental and subject to change
| details=
| │ Keep an eye on the release notes if you wish to rely on this for production builds.
| │ Please provide any feedback you might have at https://github.com/orgs/goreleaser/discussions/6005
| • creating images id=virtwork
| images=
| │ quay.io/opdev/virtwork:latest
| │ quay.io/opdev/virtwork:v0.0.1
| ⨯ release failed after 27s error=docker images (v2): failed to publish artifacts: exit status 1 message=could not build docker image args=docker buildx build --platform linux/amd64 -t quay.io/opdev/virtwork:latest -t quay.io/opdev/virtwork:v0.0.1 --push --attest=type=sbom --iidfile=id.txt --label org.opencontainers.image.created=2026-03-18T21:51:59Z --label org.opencontainers.image.description=CLI tool that creates VMs on OpenShift clusters with KubeVirt and runs continuous CPU, memory, database, network, and disk I/O workloads --label org.opencontainers.image.name=virtwork --label org.opencontainers.image.revision=d5e96567c6730dd7ae782a8aab440c36329d8c3a --label org.opencontainers.image.source=git@github.com:OchiengEd/virtwork.git --label org.opencontainers.image.version=0.0.1 --annotation project=virtwork . id=virtwork
| output=
| │ #0 building with "default" instance using docker-container driver
| │ #1 [internal] booting buildkit
| │ #1 starting container buildx_buildkit_default 0.1s done
| │ #1 ERROR: Error response from daemon: setting up Pasta: pasta failed with exit code 1:
| │ Couldn't open PID file /models/podman/runroot/networks/rootless-netns/rootless-netns-conn.pid: Permission denied
| │ ------
| │ > [internal] booting buildkit:
| │ ------
| │ ERROR: failed to build: Error response from daemon: setting up Pasta: pasta failed with exit code 1:
| │ Couldn't open PID file /models/podman/runroot/networks/rootless-netns/rootless-netns-conn.pid: Permission denied
[Goreleaser/release] ❗ ::error::The process '/opt/hostedtoolcache/goreleaser-action/2.14.3/x64/goreleaser' failed with exit code 1
[Goreleaser/release] ❌ Failure - Main Run GoReleaser [29.166773858s]
[Goreleaser/release] exitcode '1': failure
[Goreleaser/release] ⭐ Run Post Login to Quay.io
[Goreleaser/release] 🐳 docker exec cmd=[/opt/acttoolcache/node/24.14.0/x64/bin/node /var/run/act/actions/docker-login-action@v4/dist/index.js] user= workdir=
[Goreleaser/release] ❓ ::group::Logout from quay.io
| [command]/usr/bin/docker logout quay.io
| Removing login credentials for quay.io
[Goreleaser/release] ❓ ::endgroup::
[Goreleaser/release] ❓ ::group::Post cache
| State not set
[Goreleaser/release] ❓ ::endgroup::
[Goreleaser/release] ✅ Success - Post Login to Quay.io [240.331093ms]
[Goreleaser/release] ⭐ Run Complete job
[Goreleaser/release] ✅ Success - Complete job
[Goreleaser/release] 🏁 Job failed
Error: Job 'release' failed

@mrhillsman
mrhillsman requested review from mrhillsman and removed request for acmenezes March 18, 2026 21:59

@mrhillsman mrhillsman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@exe-prow-github-app

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mrhillsman, OchiengEd

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [OchiengEd,mrhillsman]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mrhillsman
mrhillsman merged commit ea1e9eb into opdev:main Mar 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants