Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci(release.yml): create GH release after all artifacts are uploaded #207

Merged
merged 1 commit into from
Jun 25, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 20 additions & 53 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -137,14 +137,6 @@ jobs:
name: cloud-${{ env.RUNNER_OS }}-${{ matrix.config.arch }}
path: _dist/cloud-${{ env.RELEASE_VERSION }}-${{ env.RUNNER_OS }}-${{ matrix.config.arch }}.tar.gz

- name: upload binary to Github release
if: startsWith(github.ref, 'refs/tags/v')
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: _dist/cloud-${{ env.RELEASE_VERSION }}-${{ env.RUNNER_OS }}-${{ matrix.config.arch }}.tar.gz
tag: ${{ github.ref }}

checksums_and_manifests:
name: generate checksums and manifest
runs-on: ubuntu-latest
Expand Down Expand Up @@ -177,14 +169,6 @@ jobs:
name: cloud-checksums
path: checksums-${{ env.RELEASE_VERSION }}.txt

- name: upload checksums to Github release
if: startsWith(github.ref, 'refs/tags/v')
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: checksums-${{ env.RELEASE_VERSION }}.txt
tag: ${{ github.ref }}

- name: create plugin manifest
shell: bash
env:
Expand All @@ -196,54 +180,37 @@ jobs:
name: cloud-plugin-manifest
path: cloud.json

- name: upload plugin manifest to release
uses: svenstaro/upload-release-action@v2
if: startsWith(github.ref, 'refs/tags/v')
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: cloud.json
tag: ${{ github.ref }}

reset_canary_release:
name: Delete and create Canary Release
create-gh-release:
name: create GitHub release
runs-on: ubuntu-latest
needs: checksums_and_manifests
if: github.ref == 'refs/heads/main'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4

- name: download release assets
uses: actions/download-artifact@v4
with:
pattern: cloud-*
path: _dist
merge-multiple: true

- name: 'Check if canary tag exists'
id: canaryExists
shell: bash
- name: create GitHub release (canary)
if: github.ref == 'refs/heads/main'
run: |
git fetch --prune --unshallow --tags
git show-ref --tags --verify --quiet -- "refs/tags/canary" && \
echo "canaryExists=0" >> "$GITHUB_OUTPUT" || \
echo "canaryExists=1" >> "$GITHUB_OUTPUT"
- name: Delete canary tag
if: steps.canaryExists.outputs.canaryExists == 0
uses: dev-drprasad/delete-tag-and-release@v0.2.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: canary
delete_release: true

- name: Recreate canary tag and release
uses: ncipollo/release-action@v1.14.0
with:
tag: canary
allowUpdates: true
prerelease: true
artifacts: "cloud*.tar.gz,cloud.json,checksums-canary.txt"
commit: ${{ github.sha }}
body: |
gh release delete canary --cleanup-tag
gh release create canary _dist/* \
--title canary \
--prerelease \
--notes-file - <<- EOF
This is a "canary" release of the most recent commits on our main branch. Canary is **not stable**.
It is only intended for developers wishing to try out the latest features in cloud plugin, some of which may not be fully implemented.
EOF
- name: create GitHub release
if: startsWith(github.ref, 'refs/tags/v')
run: |
gh release create ${{ github.ref_name }} _dist/* \
--title ${{ github.ref_name }} \
--generate-notes