ci: publish releases through Rickub's REST shim
0c2e37c parent: 4d22dea modified
.github/workflows/release.yml +24 -19 | @@ -91,24 +91,29 @@ jobs: | ||
| 91 | 91 | cd dist |
| 92 | 92 | sha256sum "$ARCHIVE_ROOT.tar.gz" > "$ARCHIVE_ROOT.tar.gz.sha256" |
| 93 | 93 | |
| 94 | - - name: Publish GitHub release | |
| 95 | - env: | |
| 96 | - GH_TOKEN: ${{ github.token }} | |
| 97 | - TAG: ${{ steps.release.outputs.tag }} | |
| 98 | - run: | | |
| 99 | - # Rickub runners expose an internal GITHUB_SERVER_URL alias that is | |
| 100 | - # not reachable by `gh` from the job container. Use the public host. | |
| 101 | - export GH_HOST=rickub.com | |
| 102 | - assets=( | |
| 94 | + - name: Upload workflow artifact | |
| 95 | + uses: actions/upload-artifact@v4 | |
| 96 | + with: | |
| 97 | + name: clonim-${{ steps.release.outputs.tag }}-linux-x86_64 | |
| 98 | + path: | | |
| 103 | 99 | dist/clonim-linux-x86_64.tar.gz |
| 104 | 100 | dist/clonim-linux-x86_64.tar.gz.sha256 |
| 105 | - ) | |
| 106 | - if gh release view "$TAG" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then | |
| 107 | - gh release upload "$TAG" "${assets[@]}" --clobber \ | |
| 108 | - --repo "$GITHUB_REPOSITORY" | |
| 109 | - else | |
| 110 | - gh release create "$TAG" "${assets[@]}" --repo "$GITHUB_REPOSITORY" \ | |
| 111 | - --verify-tag \ | |
| 112 | - --generate-notes \ | |
| 113 | - --title "$TAG" | |
| 114 | - fi | |
| 101 | + if-no-files-found: error | |
| 102 | + retention-days: 90 | |
| 103 | + | |
| 104 | + - name: Publish Rickub release | |
| 105 | + uses: softprops/action-gh-release@v2 | |
| 106 | + with: | |
| 107 | + tag_name: ${{ steps.release.outputs.tag }} | |
| 108 | + name: ${{ steps.release.outputs.tag }} | |
| 109 | + body: | | |
| 110 | + Linux x86_64 release of clonim. | |
| 111 | + | |
| 112 | + The archive contains the compiler, its matched private static | |
| 113 | + runtime archives, runtime interface, and clonim standard library. | |
| 114 | + draft: false | |
| 115 | + prerelease: false | |
| 116 | + files: | | |
| 117 | + dist/clonim-linux-x86_64.tar.gz | |
| 118 | + dist/clonim-linux-x86_64.tar.gz.sha256 | |
| 119 | + fail_on_unmatched_files: true | |
| @@ -91,24 +91,29 @@ jobs: | |||
| 91 | cd dist | 91 | cd dist |
| 92 | sha256sum "$ARCHIVE_ROOT.tar.gz" > "$ARCHIVE_ROOT.tar.gz.sha256" | 92 | sha256sum "$ARCHIVE_ROOT.tar.gz" > "$ARCHIVE_ROOT.tar.gz.sha256" |
| 93 | 93 | ||
| 94 | - - name: Publish GitHub release | 94 | + - name: Upload workflow artifact |
| 95 | - env: | 95 | + uses: actions/upload-artifact@v4 |
| 96 | - GH_TOKEN: ${{ github.token }} | 96 | + with: |
| 97 | - TAG: ${{ steps.release.outputs.tag }} | 97 | + name: clonim-${{ steps.release.outputs.tag }}-linux-x86_64 |
| 98 | - run: | | 98 | + path: | |
| 99 | - # Rickub runners expose an internal GITHUB_SERVER_URL alias that is | ||
| 100 | - # not reachable by `gh` from the job container. Use the public host. | ||
| 101 | - export GH_HOST=rickub.com | ||
| 102 | - assets=( | ||
| 103 | dist/clonim-linux-x86_64.tar.gz | 99 | dist/clonim-linux-x86_64.tar.gz |
| 104 | dist/clonim-linux-x86_64.tar.gz.sha256 | 100 | dist/clonim-linux-x86_64.tar.gz.sha256 |
| 105 | - ) | 101 | + if-no-files-found: error |
| 106 | - if gh release view "$TAG" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then | 102 | + retention-days: 90 |
| 107 | - gh release upload "$TAG" "${assets[@]}" --clobber \ | 103 | + |
| 108 | - --repo "$GITHUB_REPOSITORY" | 104 | + - name: Publish Rickub release |
| 109 | - else | 105 | + uses: softprops/action-gh-release@v2 |
| 110 | - gh release create "$TAG" "${assets[@]}" --repo "$GITHUB_REPOSITORY" \ | 106 | + with: |
| 111 | - --verify-tag \ | 107 | + tag_name: ${{ steps.release.outputs.tag }} |
| 112 | - --generate-notes \ | 108 | + name: ${{ steps.release.outputs.tag }} |
| 113 | - --title "$TAG" | 109 | + body: | |
| 114 | - fi | 110 | + Linux x86_64 release of clonim. |
| 111 | + | ||
| 112 | + The archive contains the compiler, its matched private static | ||
| 113 | + runtime archives, runtime interface, and clonim standard library. | ||
| 114 | + draft: false | ||
| 115 | + prerelease: false | ||
| 116 | + files: | | ||
| 117 | + dist/clonim-linux-x86_64.tar.gz | ||
| 118 | + dist/clonim-linux-x86_64.tar.gz.sha256 | ||
| 119 | + fail_on_unmatched_files: true | ||