fix(ci): consolidate release approvals and finalise drafts (#1223)

This commit is contained in:
Hampus authored and GitHub committed 2026-06-30 03:58:54 +02:00
1 parent a2ed83df08
commit 79c79b16e6
17 files changed
+293 -20

No files matched your search

+28 -6
View File
@@ -500,12 +500,7 @@ fn upload_release_assets(version: &str, assets: &[PathBuf]) -> Result<()> {
fn publish_release(version: &str, notes_path: &Path) -> Result<()> {
let tag = release_tag(version);
let release_id = output_text(
CommandSpec::new("gh")
.arg("api")
.arg(format!("repos/{{owner}}/{{repo}}/releases/tags/{tag}"))
.args(["--jq", ".id"]),
)?;
let release_id = release_database_id(&tag)?;
let payload_dir = tempdir()?;
let payload_path = payload_dir.path().join("release-update.json");
write_json_pretty(
@@ -526,6 +521,22 @@ fn publish_release(version: &str, notes_path: &Path) -> Result<()> {
)
}
fn release_database_id(tag: &str) -> Result<String> {
let release_id = output_text(release_database_id_command(tag))?;
ensure!(
!release_id.trim().is_empty(),
"GitHub release {tag} did not include a database id"
);
Ok(release_id)
}
fn release_database_id_command(tag: &str) -> CommandSpec {
CommandSpec::new("gh")
.args(["release", "view", tag])
.args(["--json", "databaseId"])
.args(["--jq", ".databaseId"])
}
fn write_fragment(name: &str, value: &Value) -> Result<PathBuf> {
let dir = release_output_dir().join("fragments");
fs::create_dir_all(&dir).with_context(|| format!("Failed to create {}", dir.display()))?;
@@ -1000,6 +1011,17 @@ mod tests {
assert!(notes.contains("- `self-hosting`"));
}
#[test]
fn release_database_id_command_uses_gh_release_view_for_drafts() {
assert_eq!(
release_database_id_command("2026.520.1"),
CommandSpec::new("gh")
.args(["release", "view", "2026.520.1"])
.args(["--json", "databaseId"])
.args(["--jq", ".databaseId"])
);
}
#[test]
fn self_hosting_images_match_compose_release_surface() {
let images = self_hosting_images("2026.520.1")