From b7222e9a96794ed3f3ea7bfb3ae5d499aac1ecae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Pi=C4=85tkowski?= Date: Wed, 5 Aug 2026 13:42:04 +0200 Subject: [PATCH] fix(ci): install gitsemver from its raw release binary The legacy gitsemver-v-linux-amd64.tar.gz assets are produced by this repo own create_and_upload_build_artifacts job, which only runs when the caller passes build-release-artifacts: true. giantswarm/gitsemver#260 removed that input, so the next gitsemver release will not have a tarball and every release workflow in the org would 404 - exactly how schemalint action broke at v2.6.2. The pinned v2.0.1 predates the removal and ships both asset names, so this is a no-op today and correct afterwards. Verified the raw asset downloads and that "gitsemver --version" works on it. Co-Authored-By: Claude Opus 5 --- .github/workflows/create-release-pr.yaml | 7 +++++-- .github/workflows/create-release.yaml | 21 +++++++++++++++------ CHANGELOG.md | 13 +++++++++++++ 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/.github/workflows/create-release-pr.yaml b/.github/workflows/create-release-pr.yaml index 0c843ea..a46421e 100644 --- a/.github/workflows/create-release-pr.yaml +++ b/.github/workflows/create-release-pr.yaml @@ -78,8 +78,11 @@ jobs: binary: "gitsemver" # renovate: datasource=github-releases depName=giantswarm/gitsemver version: v2.0.1 - download_url: "https://github.com/giantswarm/${binary}/releases/download/${version}/${binary}-${version}-linux-amd64.tar.gz" - tarball_binary_path: "*/${binary}" + # Raw binary, not the legacy `-${version}-linux-amd64.tar.gz`: those tarballs only exist + # for repos passing `build-release-artifacts: true` to create-release.yaml, and gitsemver + # stopped doing that in giantswarm/gitsemver#260. Extension-less URLs skip unarchiving, + # so no `tarball_binary_path` is needed. + download_url: "https://github.com/giantswarm/${binary}/releases/download/${version}/${binary}-linux-amd64" smoke_test: "${binary} --version" - name: Resolve version diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index 476dfd7..91ba2d5 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -46,8 +46,11 @@ jobs: binary: "gitsemver" # renovate: datasource=github-releases depName=giantswarm/gitsemver version: v2.0.1 - download_url: "https://github.com/giantswarm/${binary}/releases/download/${version}/${binary}-${version}-linux-amd64.tar.gz" - tarball_binary_path: "*/${binary}" + # Raw binary, not the legacy `-${version}-linux-amd64.tar.gz`: those tarballs only exist + # for repos passing `build-release-artifacts: true` below, and gitsemver stopped doing + # that in giantswarm/gitsemver#260. Extension-less URLs skip unarchiving, so no + # `tarball_binary_path` is needed. + download_url: "https://github.com/giantswarm/${binary}/releases/download/${version}/${binary}-linux-amd64" smoke_test: "${binary} --version" - name: Get version id: get_version @@ -116,8 +119,11 @@ jobs: binary: "gitsemver" # renovate: datasource=github-releases depName=giantswarm/gitsemver version: v2.0.1 - download_url: "https://github.com/giantswarm/${binary}/releases/download/${version}/${binary}-${version}-linux-amd64.tar.gz" - tarball_binary_path: "*/${binary}" + # Raw binary, not the legacy `-${version}-linux-amd64.tar.gz`: those tarballs only exist + # for repos passing `build-release-artifacts: true` below, and gitsemver stopped doing + # that in giantswarm/gitsemver#260. Extension-less URLs skip unarchiving, so no + # `tarball_binary_path` is needed. + download_url: "https://github.com/giantswarm/${binary}/releases/download/${version}/${binary}-linux-amd64" smoke_test: "${binary} --version" - name: Update project.go id: update_project_go @@ -367,8 +373,11 @@ jobs: binary: "gitsemver" # renovate: datasource=github-releases depName=giantswarm/gitsemver version: v2.0.1 - download_url: "https://github.com/giantswarm/${binary}/releases/download/${version}/${binary}-${version}-linux-amd64.tar.gz" - tarball_binary_path: "*/${binary}" + # Raw binary, not the legacy `-${version}-linux-amd64.tar.gz`: those tarballs only exist + # for repos passing `build-release-artifacts: true` below, and gitsemver stopped doing + # that in giantswarm/gitsemver#260. Extension-less URLs skip unarchiving, so no + # `tarball_binary_path` is needed. + download_url: "https://github.com/giantswarm/${binary}/releases/download/${version}/${binary}-linux-amd64" smoke_test: "${binary} --version" - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index e5d21d3..ed4e4c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), however this project does not use Semantic Versioning and there are no releases. Instead this file uses a date-based structure. +## 2026-08-05 + +### Fixed + +- `create-release.yaml`, `create-release-pr.yaml` — install `gitsemver` from its raw + `gitsemver-linux-amd64` release asset instead of the legacy + `gitsemver-v-linux-amd64.tar.gz`. Those tarballs are only built by this repo's own + `create_and_upload_build_artifacts` job, which requires the caller to pass + `build-release-artifacts: true` — and `giantswarm/gitsemver#260` removed that input. The pinned + v2.0.1 predates the removal so it still ships both asset names, but the next gitsemver release + would have 404'd every release workflow in the org. This is the same failure that broke + `schemalint`'s action at v2.6.2. + ## 2026-07-29 ### Fixed