From a12283e2ff381b18da3b10480f01b57a81766168 Mon Sep 17 00:00:00 2001 From: Daniel Hiltgen Date: Sat, 15 Jun 2024 08:26:54 -0700 Subject: [PATCH] Implement custom github release action This implements the release logic we want via gh cli to support updating releases with rc tags in place and retain release notes and other community reactions. --- .github/workflows/release.yaml | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 40f9c41f..61ca3c43 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -437,6 +437,7 @@ jobs: env: OLLAMA_SKIP_IMAGE_BUILD: '1' PUSH: '1' + GH_TOKEN: ${{ github.token }} steps: - uses: actions/checkout@v4 - name: Set Version @@ -460,15 +461,20 @@ jobs: ls -lh dist/ (cd dist; sha256sum * > sha256sum.txt) cat dist/sha256sum.txt - - uses: ncipollo/release-action@v1 - with: - name: ${{ env.RELEASE_VERSION }} - allowUpdates: true - artifacts: 'dist/*' - draft: true - prerelease: true - omitBodyDuringUpdate: true - generateReleaseNotes: true - omitDraftDuringUpdate: true - omitPrereleaseDuringUpdate: true - replacesArtifacts: true + - name: Create or update Release + run: | + echo "Looking for existing release for ${{ env.RELEASE_VERSION }}" + OLD_TAG=$(gh release ls --json name,tagName | jq -r ".[] | select(.name == \"${{ env.RELEASE_VERSION }}\") | .tagName") + if [ -n "$OLD_TAG" ]; then + echo "Updating release ${{ env.RELEASE_VERSION }} to point to new tag ${GITHUB_REF_NAME}" + gh release edit ${OLD_TAG} --tag ${GITHUB_REF_NAME} + else + echo "Creating new release ${{ env.RELEASE_VERSION }} pointing to tag ${GITHUB_REF_NAME}" + gh release create ${GITHUB_REF_NAME} \ + --title ${{ env.RELEASE_VERSION }} \ + --draft \ + --generate-notes \ + --prerelease + fi + echo "Uploading artifacts for tag ${GITHUB_REF_NAME}" + gh release upload ${GITHUB_REF_NAME} dist/* --clobber