From 0048243650473fa2781ca2eee7bed1a9eb4db553 Mon Sep 17 00:00:00 2001 From: "Alex H. Raber" Date: Fri, 10 Jul 2026 23:44:59 -0700 Subject: [PATCH] fix(ci): download builddeck.tag from release_build step for reliable release handoff The release step always got a fresh workspace, so the local builddeck.tag file from release_build was never available. The release step always skipped with 'No tag was created'. Fix: - release_build now re-uploads builddeck.tag (downloaded from tag step) under its own step key, so the artifact is immediately available to downstream steps. - release downloads from --step release_build (the step that just ran) instead of checking a local file. Includes the [[ -s builddeck.tag ]] content guard to prevent empty-version crashes. - Conditional upload: builddeck.tag is only uploaded from release_build if it exists and has content (i.e., a tag was created). 'dev' builds are not uploaded. --- .buildkite/pipeline.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 6d1a730..4f3220c 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -104,12 +104,18 @@ steps: sha256sum builddeck | tee builddeck.sha256 buildkite-agent artifact upload "builddeck" buildkite-agent artifact upload "builddeck.sha256" + # Upload builddeck.tag so the release step can download it from this step + # regardless of which agent it runs on. The tag step also uploads it, but + # having it from release_build ensures immediate availability. + if [[ -s builddeck.tag ]]; then + buildkite-agent artifact upload "builddeck.tag" + fi - label: ":rocket: GitHub Release" key: release depends_on: release_build command: | - if [[ -s builddeck.tag ]]; then + if buildkite-agent artifact download builddeck.tag . --step release_build 2>/dev/null && [[ -s builddeck.tag ]]; then VERSION=$(cat builddeck.tag) echo "Creating GitHub release for ${VERSION}" .buildkite/release.sh "${VERSION}"