Mark RC Gitea releases as prereleases
ci / test (push) Waiting to run
ci / fuzz-smoke (push) Waiting to run
ci / windows-client (push) Waiting to run
ci / package-release (linux-x86_64, ubuntu-latest) (push) Waiting to run
ci / package-release (macos-aarch64, macos-14) (push) Waiting to run
ci / package-release (macos-x86_64, macos-13) (push) Waiting to run
ci / package-release (windows-x86_64, windows-latest) (push) Waiting to run
ci / publish-gitea-release (push) Blocked by required conditions
ci / remote-bench (push) Waiting to run
ci / test (push) Waiting to run
ci / fuzz-smoke (push) Waiting to run
ci / windows-client (push) Waiting to run
ci / package-release (linux-x86_64, ubuntu-latest) (push) Waiting to run
ci / package-release (macos-aarch64, macos-14) (push) Waiting to run
ci / package-release (macos-x86_64, macos-13) (push) Waiting to run
ci / package-release (windows-x86_64, windows-latest) (push) Waiting to run
ci / publish-gitea-release (push) Blocked by required conditions
ci / remote-bench (push) Waiting to run
This commit is contained in:
@@ -34,6 +34,10 @@ token="${GITEA_TOKEN:-}"
|
|||||||
title="${GITEA_TITLE:-$tag}"
|
title="${GITEA_TITLE:-$tag}"
|
||||||
expected_version="${tag#v}"
|
expected_version="${tag#v}"
|
||||||
allow_partial="${DOSH_RELEASE_ALLOW_PARTIAL:-0}"
|
allow_partial="${DOSH_RELEASE_ALLOW_PARTIAL:-0}"
|
||||||
|
release_prerelease=false
|
||||||
|
case "$expected_version" in
|
||||||
|
*-*) release_prerelease=true ;;
|
||||||
|
esac
|
||||||
|
|
||||||
artifact_version() {
|
artifact_version() {
|
||||||
artifact="$1"
|
artifact="$1"
|
||||||
@@ -131,7 +135,7 @@ elif [ -n "$release_json" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$release_id" ]; then
|
if [ -z "$release_id" ]; then
|
||||||
payload="$(printf '{"tag_name":"%s","target_commitish":"main","name":"%s","body":"Dosh release %s","draft":false,"prerelease":false}\n' "$tag" "$title" "$tag")"
|
payload="$(printf '{"tag_name":"%s","target_commitish":"main","name":"%s","body":"Dosh release %s","draft":false,"prerelease":%s}\n' "$tag" "$title" "$tag" "$release_prerelease")"
|
||||||
release_json="$(curl -fsS -H "$auth_header" -H 'Content-Type: application/json' -X POST "$api/releases" -d "$payload")"
|
release_json="$(curl -fsS -H "$auth_header" -H 'Content-Type: application/json' -X POST "$api/releases" -d "$payload")"
|
||||||
if command -v jq >/dev/null 2>&1; then
|
if command -v jq >/dev/null 2>&1; then
|
||||||
release_id="$(printf '%s\n' "$release_json" | jq -r '.id // empty')"
|
release_id="$(printf '%s\n' "$release_json" | jq -r '.id // empty')"
|
||||||
@@ -145,6 +149,14 @@ if [ -z "$release_id" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
metadata_payload="$(printf '{"name":"%s","body":"Dosh release %s","draft":false,"prerelease":%s}\n' "$title" "$tag" "$release_prerelease")"
|
||||||
|
curl -fsS \
|
||||||
|
-H "$auth_header" \
|
||||||
|
-H 'Content-Type: application/json' \
|
||||||
|
-X PATCH \
|
||||||
|
"$api/releases/$release_id" \
|
||||||
|
-d "$metadata_payload" >/dev/null
|
||||||
|
|
||||||
delete_existing_asset() {
|
delete_existing_asset() {
|
||||||
name="$1"
|
name="$1"
|
||||||
if ! command -v jq >/dev/null 2>&1; then
|
if ! command -v jq >/dev/null 2>&1; then
|
||||||
|
|||||||
@@ -38,6 +38,19 @@ fn release_upload_refuses_partial_platform_sets_by_default() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn release_upload_marks_prerelease_tags_as_prereleases() {
|
||||||
|
let upload = include_str!("../scripts/upload-gitea-release.sh");
|
||||||
|
assert!(upload.contains("release_prerelease=false"));
|
||||||
|
assert!(upload.contains("*-*) release_prerelease=true"));
|
||||||
|
assert!(upload.contains("\"prerelease\":%s"));
|
||||||
|
assert!(upload.contains("metadata_payload="));
|
||||||
|
assert!(
|
||||||
|
upload.contains("-X PATCH"),
|
||||||
|
"existing Gitea releases must be corrected when prerelease metadata changes"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn installers_skip_stale_latest_release_prebuilts() {
|
fn installers_skip_stale_latest_release_prebuilts() {
|
||||||
let install = include_str!("../install.sh");
|
let install = include_str!("../install.sh");
|
||||||
|
|||||||
Reference in New Issue
Block a user