fix(release): support stable previews without publishing packages to R2

This commit is contained in:
overtrue
2026-09-08 09:10:18 +08:00
parent a0b7310ece
commit 2139c2f6ca
4 changed files with 12 additions and 5 deletions
+2 -2
View File
@@ -122,7 +122,7 @@ jobs:
semver_core='(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)'
prerelease_id='(alpha|beta|rc)\.(0|[1-9][0-9]*)'
if [[ -n "$TAG" ]]; then
if [[ "$TAG" =~ ^${semver_core}-${prerelease_id}-preview\.(0|[1-9][0-9]*)$ ]]; then
if [[ "$TAG" =~ ^${semver_core}(-${prerelease_id})?-preview\.(0|[1-9][0-9]*)$ ]]; then
BUILD_TYPE=preview
elif [[ "$TAG" =~ ^${semver_core}-${prerelease_id}$ ]]; then
BUILD_TYPE=prerelease
@@ -498,7 +498,7 @@ jobs:
retention-days: 30
- name: Upload packages to Cloudflare R2
if: env.R2_ACCESS_KEY_ID != ''
if: env.R2_ACCESS_KEY_ID != '' && needs.resolve.outputs.build_type != 'preview'
env:
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
+2 -2
View File
@@ -71,8 +71,8 @@ case "$build_type" in
;;
preview)
[[ -z "$dev_sequence" ]] || fail "preview must not have a development sequence"
[[ "$source_version" =~ ^${semver_core}-${prerelease_id}-preview\.(0|[1-9][0-9]*)$ ]] ||
fail "preview version must be strict prerelease-preview SemVer"
[[ "$source_version" =~ ^${semver_core}(-${prerelease_id})?-preview\.(0|[1-9][0-9]*)$ ]] ||
fail "preview version must be strict stable-preview or prerelease-preview SemVer"
deb_version=${source_version/-/$tilde}
rpm_version=${source_version//-/_}
@@ -4,6 +4,7 @@ set -euo pipefail
build_workflow=".github/workflows/build.yml"
docker_workflow=".github/workflows/docker.yml"
helm_workflow=".github/workflows/helm-package.yml"
package_workflow=".github/workflows/package.yml"
release_script="scripts/release/create_or_update_release.sh"
# shellcheck source=scripts/release/create_or_update_release.sh
@@ -133,6 +134,7 @@ for block in "$tag_branch_tail" "$post_strategy"; do
done
require_line "$build_workflow" " if [[ \"\$BUILD_TYPE\" == \"release\" ]] || [[ \"\$BUILD_TYPE\" == \"prerelease\" ]]; then" "latest artifact guard"
require_line "$build_workflow" " if: env.R2_ACCESS_KEY_ID != '' && (needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease' || needs.build-check.outputs.build_type == 'development')" "R2 publication guard"
require_line "$package_workflow" " if: env.R2_ACCESS_KEY_ID != '' && needs.resolve.outputs.build_type != 'preview'" "preview packages must not publish to R2"
release_guard="startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'preview' || needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease')"
for job in create-release upload-release-assets publish-release; do
require_job_if "$build_workflow" "$job" " if: $release_guard"
+6 -1
View File
@@ -85,6 +85,9 @@ run_success rc-amd64 \
run_success preview-amd64 \
$'deb_version=1.0.0~rc.5-preview.2\nrpm_version=1.0.0_rc.5_preview.2\nrpm_release=1\ndeb_file=rustfs_1.0.0~rc.5-preview.2_amd64.deb\nrpm_file=rustfs-1.0.0_rc.5_preview.2-1.x86_64.rpm' \
preview 1.0.0-rc.5-preview.2 '' amd64 x86_64
run_success stable-preview-arm64 \
$'deb_version=1.0.0~preview.1\nrpm_version=1.0.0_preview.1\nrpm_release=1\ndeb_file=rustfs_1.0.0~preview.1_arm64.deb\nrpm_file=rustfs-1.0.0_preview.1-1.aarch64.rpm' \
preview 1.0.0-preview.1 '' arm64 aarch64
run_success development-amd64 \
"deb_version=0~dev.7463.${sha}
rpm_version=0
@@ -108,7 +111,9 @@ run_failure release-with-sequence release 1.2.3 1 amd64 x86_64
run_failure release-prerelease-mismatch release 1.2.3-rc.1 '' amd64 x86_64
run_failure prerelease-release-mismatch prerelease 1.2.3 '' amd64 x86_64
run_failure preview-malformed preview 1.2.3-rc.1-preview '' amd64 x86_64
run_failure preview-wrong-shape preview 1.2.3-preview.1 '' amd64 x86_64
run_failure preview-wrong-shape preview 1.2.3-dev-preview.1 '' amd64 x86_64
run_failure preview-leading-zero preview 1.2.3-preview.01 '' amd64 x86_64
run_failure preview-extra-suffix preview 1.2.3-preview.1-extra '' amd64 x86_64
run_failure short-semver release 1.2 '' amd64 x86_64
run_failure leading-v release v1.2.3 '' amd64 x86_64
run_failure leading-zero release 01.2.3 '' amd64 x86_64