@@ -336,8 +336,7 @@ jobs:
336336 name : Linux CLI and Relay Server
337337 needs : prepare
338338 if : >-
339- needs.prepare.outputs.relay_image_only != 'true' &&
340- needs.prepare.outputs.release_channel == 'stable'
339+ needs.prepare.outputs.relay_image_only != 'true'
341340 uses : ./.github/workflows/linux-binaries.yml
342341 secrets :
343342 release_signing_key : ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
@@ -355,19 +354,19 @@ jobs:
355354 needs : [prepare, linux-binaries]
356355 if : >-
357356 always() &&
358- ((needs.prepare.outputs.upload_to_release == 'true' &&
359- needs.prepare.outputs.release_channel == 'stable') ||
357+ (needs.prepare.outputs.upload_to_release == 'true' ||
360358 needs.prepare.outputs.relay_image_only == 'true') &&
361359 (needs.prepare.outputs.relay_image_only == 'true' ||
362360 needs.linux-binaries.result == 'success')
363361 runs-on : ubuntu-latest
364362 permissions :
365363 contents : write
366364 packages : write
367- env :
368- IMAGE : ghcr.io/gcwing/openbitfun-relay-server
369-
370365 steps :
366+ - name : Resolve image repository
367+ shell : bash
368+ run : echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/openbitfun-relay-server" >> "$GITHUB_ENV"
369+
371370 - name : Checkout
372371 uses : actions/checkout@v5
373372 with :
@@ -391,7 +390,7 @@ jobs:
391390 set -euo pipefail
392391 mkdir -p linux-release-assets
393392 gh release download "${RELEASE_TAG}" \
394- --repo GCWing/OpenBitFun \
393+ --repo "${GITHUB_REPOSITORY}" \
395394 --dir linux-release-assets \
396395 --pattern 'openbitfun-relay-server-*.tar.gz' \
397396 --pattern 'openbitfun-relay-server-*.tar.gz.sha256'
@@ -436,10 +435,10 @@ jobs:
436435 echo 'value<<EOF'
437436 echo "${IMAGE}:${RELEASE_TAG}"
438437 echo "${IMAGE}:${asset_version}"
439- if [[ "${IMAGE_ONLY}" == "true" ]]; then
438+ if [[ "${IMAGE_ONLY}" == "true" && "${RELEASE_CHANNEL}" == "stable" ]]; then
440439 # Backfilling an older release must not roll the floating tag
441440 # backwards. GitHub's latest endpoint excludes prereleases.
442- latest_release="$(gh api repos/GCWing/OpenBitFun/ releases/latest --jq .tag_name)"
441+ latest_release="$(gh api " repos/${GITHUB_REPOSITORY}/ releases/latest" --jq .tag_name)"
443442 if [[ "${RELEASE_TAG}" == "${latest_release}" ]]; then
444443 echo "${IMAGE}:latest"
445444 fi
@@ -536,6 +535,8 @@ jobs:
536535 uses : softprops/action-gh-release@v3
537536 with :
538537 tag_name : ${{ needs.prepare.outputs.release_tag }}
538+ prerelease : ${{ needs.prepare.outputs.release_channel == 'beta' }}
539+ make_latest : " false"
539540 files : |
540541 relay-image.json
541542 relay-image.json.sig
@@ -549,9 +550,8 @@ jobs:
549550 always() &&
550551 needs.prepare.outputs.upload_to_release == 'true' &&
551552 needs.package.result == 'success' &&
552- (needs.prepare.outputs.release_channel == 'beta' ||
553- (needs.linux-binaries.result == 'success' &&
554- needs.publish-relay-image.result == 'success'))
553+ needs.linux-binaries.result == 'success' &&
554+ needs.publish-relay-image.result == 'success'
555555 runs-on : ubuntu-latest
556556 env :
557557 REQUIRED_UPDATER_PLATFORMS : windows-x86_64,darwin-x86_64,darwin-aarch64,linux-x86_64,linux-aarch64
@@ -568,32 +568,26 @@ jobs:
568568 merge-multiple : true
569569
570570 - name : Download Linux binary artifacts
571- if : needs.prepare.outputs.release_channel == 'stable'
572571 uses : actions/download-artifact@v7
573572 with :
574573 pattern : openbitfun-linux-${{ needs.prepare.outputs.release_tag }}-*
575574 path : linux-release-assets
576575 merge-multiple : true
577576
578577 - name : Download Relay image descriptor
579- if : needs.prepare.outputs.release_channel == 'stable'
580578 uses : actions/download-artifact@v7
581579 with :
582580 name : openbitfun-relay-image-${{ needs.prepare.outputs.release_tag }}
583581 path : relay-image-assets
584582
585583 - name : List release assets
586- env :
587- RELEASE_CHANNEL : ${{ needs.prepare.outputs.release_channel }}
588584 run : |
589585 echo "Release assets:"
590586 find release-assets -type f | sort
591- if [[ "${RELEASE_CHANNEL}" == "stable" ]]; then
592- echo "Linux CLI and Relay Server assets:"
593- find linux-release-assets -type f | sort
594- echo "Relay image descriptor:"
595- find relay-image-assets -type f | sort
596- fi
587+ echo "Linux CLI and Relay Server assets:"
588+ find linux-release-assets -type f | sort
589+ echo "Relay image descriptor:"
590+ find relay-image-assets -type f | sort
597591
598592 - name : Prepare versioned Windows installer
599593 run : |
@@ -638,13 +632,12 @@ jobs:
638632 --required-manual-platforms "windows-x86_64"
639633
640634 - name : Generate Linux binaries manifest
641- if : needs.prepare.outputs.release_channel == 'stable'
642635 run : |
643636 node scripts/generate-linux-binaries-manifest.mjs \
644637 --assets-dir linux-release-assets \
645638 --version "${{ needs.prepare.outputs.version }}" \
646639 --tag "${{ needs.prepare.outputs.release_tag }}" \
647- --repo "GCWing/OpenBitFun " \
640+ --repo "${{ github.repository }} " \
648641 --out linux-release-assets/linux-binaries.json
649642
650643 # The Tauri bundler signs the five updater artifacts during `tauri build`,
@@ -677,8 +670,7 @@ jobs:
677670 node scripts/write-minisign-public-key.mjs \
678671 --out release-assets/minisign.pub
679672
680- - name : Stage stable release assets
681- if : needs.prepare.outputs.release_channel == 'stable'
673+ - name : Stage release assets
682674 shell : bash
683675 run : |
684676 set -euo pipefail
@@ -707,27 +699,6 @@ jobs:
707699 relay-image-assets/relay-image.json \
708700 relay-image-assets/relay-image.json.sig
709701
710- - name : Stage beta release assets
711- if : needs.prepare.outputs.release_channel == 'beta'
712- shell : bash
713- run : |
714- set -euo pipefail
715- shopt -s globstar
716- node scripts/stage-github-release-assets.mjs \
717- --out-dir release-upload-assets \
718- release-updater-assets/* \
719- release-manual-assets/*.exe \
720- release-manual-assets/*.exe.sig \
721- release-assets/**/*.AppImage \
722- release-assets/**/*.AppImage.sig \
723- release-assets/**/*.deb \
724- release-assets/**/*.deb.sig \
725- release-assets/**/*.dmg \
726- release-assets/**/*.dmg.sig \
727- release-assets/**/*.rpm \
728- release-assets/**/*.rpm.sig \
729- release-assets/minisign.pub
730-
731702 - name : Upload to release
732703 uses : softprops/action-gh-release@v3
733704 with :
@@ -752,28 +723,33 @@ jobs:
752723 --check-urls true
753724
754725 - name : Verify published Linux binaries manifest
755- if : needs.prepare.outputs.release_channel == 'stable'
756726 run : |
757727 curl -fsSL --retry 5 --retry-delay 3 \
758- "https://github.com/GCWing/OpenBitFun /releases/download/${{ needs.prepare.outputs.release_tag }}/linux-binaries.json" \
728+ "https://github.com/${{ github.repository }} /releases/download/${{ needs.prepare.outputs.release_tag }}/linux-binaries.json" \
759729 -o linux-binaries.published.json
760730 test "$(jq -r '.version' linux-binaries.published.json)" = "${{ needs.prepare.outputs.version }}"
761- while IFS= read -r cli_url; do
762- curl -fsSL --retry 5 --retry-delay 3 "${cli_url}.sig" -o /dev/null
763- curl -fsSL --retry 5 --retry-delay 3 "${cli_url}.sha256.sig" -o /dev/null
764- done < <(jq -r '.platforms[].cli.url' linux-binaries.published.json)
731+ jq -e '.platforms | has("linux-x86_64") and has("linux-aarch64")' linux-binaries.published.json >/dev/null
732+ while IFS= read -r archive_url; do
733+ test -n "${archive_url}"
734+ curl -fsSLI --retry 5 --retry-delay 3 "${archive_url}" -o /dev/null
735+ curl -fsSL --retry 5 --retry-delay 3 "${archive_url}.sha256" -o /dev/null
736+ curl -fsSL --retry 5 --retry-delay 3 "${archive_url}.sig" -o /dev/null
737+ curl -fsSL --retry 5 --retry-delay 3 "${archive_url}.sha256.sig" -o /dev/null
738+ done < <(jq -r '.platforms[] | .cli.url, .relay.url' linux-binaries.published.json)
765739
766740 - name : Verify published Relay image descriptor
767- if : needs.prepare.outputs.release_channel == 'stable'
741+ shell : bash
768742 run : |
769743 curl -fsSL --retry 5 --retry-delay 3 \
770- "https://github.com/GCWing/OpenBitFun /releases/download/${{ needs.prepare.outputs.release_tag }}/relay-image.json" \
744+ "https://github.com/${{ github.repository }} /releases/download/${{ needs.prepare.outputs.release_tag }}/relay-image.json" \
771745 -o relay-image.published.json
772746 test "$(jq -r '.tag' relay-image.published.json)" = "${{ needs.prepare.outputs.release_tag }}"
773- test "$(jq -r '.image' relay-image.published.json)" = "ghcr.io/gcwing/openbitfun-relay-server"
747+ test "$(jq -r '.version' relay-image.published.json)" = "${{ needs.prepare.outputs.version }}"
748+ test "$(jq -r '.image' relay-image.published.json)" = "ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/openbitfun-relay-server"
749+ jq -e '.platforms | sort == ["linux/amd64", "linux/arm64"]' relay-image.published.json >/dev/null
774750 jq -e '.digest | test("^sha256:[0-9a-f]{64}$")' relay-image.published.json >/dev/null
775751 curl -fsSL --retry 5 --retry-delay 3 \
776- "https://github.com/GCWing/OpenBitFun /releases/download/${{ needs.prepare.outputs.release_tag }}/relay-image.json.sig" \
752+ "https://github.com/${{ github.repository }} /releases/download/${{ needs.prepare.outputs.release_tag }}/relay-image.json.sig" \
777753 -o /dev/null
778754
779755 - name : Resolve beta channel promotion
0 commit comments