fix: softprops/action-gh-release@v2 should use existing tag instead of creating a new tag (#1436)

https://github.com/Homebrew/homebrew-core/pull/228521 details the issues
I was having with the **Source code (tar.gz)** artifact for our GitHub
releases not being quite right. I landed these PRs as stabs in the dark
to fix this:

- https://github.com/openai/codex/pull/1423
- https://github.com/openai/codex/pull/1430

Based on the insights from
https://github.com/Homebrew/homebrew-core/pull/228521, I think those
were wrong and the real problem was this:


6dad5c3b17/.github/workflows/rust-release.yml (L162)

That is, I was manufacturing a new tag name on the fly instead of using
the existing one.

This PR reverts #1423 and #1430 and hopefully fixes how `tag_name` is
set for the `softprops/action-gh-release@v2` step so the **Source code
(tar.gz)** includes the correct files. Assuming this works, this should
make the Homebrew formula straightforward.
This commit is contained in:
Michael Bolin
2025-06-30 12:10:48 -07:00
committed by GitHub
parent 6dad5c3b17
commit 4cb3c76798
2 changed files with 15 additions and 15 deletions

View File

@@ -157,9 +157,7 @@ jobs:
release: release:
needs: build needs: build
name: release name: release
runs-on: ubuntu-24.04 runs-on: ubuntu-latest
env:
RELEASE_TAG: codex-rs-${{ github.sha }}-${{ github.run_attempt }}-${{ github.ref_name }}
steps: steps:
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v4
@@ -169,9 +167,19 @@ jobs:
- name: List - name: List
run: ls -R dist/ run: ls -R dist/
- uses: softprops/action-gh-release@v2 - name: Define release name
id: release_name
run: |
# Extract the version from the tag name, which is in the format
# "rust-v0.1.0".
version="${GITHUB_REF_NAME#rust-v}"
echo "name=${version}" >> $GITHUB_OUTPUT
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with: with:
tag_name: ${{ env.RELEASE_TAG }} name: ${{ steps.release_name.outputs.name }}
tag_name: ${{ github.ref_name }}
files: dist/** files: dist/**
# For now, tag releases as "prerelease" because we are not claiming # For now, tag releases as "prerelease" because we are not claiming
# the Rust CLI is stable yet. # the Rust CLI is stable yet.
@@ -181,5 +189,5 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
tag: ${{ env.RELEASE_TAG }} tag: ${{ github.ref_name }}
config: .github/dotslash-config.json config: .github/dotslash-config.json

View File

@@ -28,19 +28,11 @@ else
VERSION=$(printf '0.0.%d' "$(date +%y%m%d%H%M)") VERSION=$(printf '0.0.%d' "$(date +%y%m%d%H%M)")
fi fi
TAG="rust-v$VERSION" TAG="rust-v$VERSION"
RELEASE_BRANCH="release/$TAG" git checkout -b "$TAG"
git checkout -b "$RELEASE_BRANCH"
perl -i -pe "s/^version = \".*\"/version = \"$VERSION\"/" Cargo.toml perl -i -pe "s/^version = \".*\"/version = \"$VERSION\"/" Cargo.toml
git add Cargo.toml git add Cargo.toml
git commit -m "Release $VERSION" git commit -m "Release $VERSION"
git tag -a "$TAG" -m "Release $VERSION" git tag -a "$TAG" -m "Release $VERSION"
# The commit identified by the tag must be reachable from a branch so that
# when GitHub creates the `Source code (tar.gz)` for the release, it can find
# the commit. This is a requirement for Homebrew to be able to install the
# package from the tarball.
git push origin "$RELEASE_BRANCH"
git push origin "refs/tags/$TAG" git push origin "refs/tags/$TAG"
git checkout "$CURRENT_BRANCH" git checkout "$CURRENT_BRANCH"