Add multi-platform release builds for 0.9.0 (closes #138).
Some checks failed
Tagged release / prepare-release (push) Failing after 5s
Tagged release / build-macos (push) Has been skipped
Tagged release / build-linux-arm64 (push) Has been skipped
Tagged release / build-linux-x64 (push) Has been skipped
Tagged release / build-windows (push) Has been skipped
Tagged release / publish-release (push) Has been skipped
Some checks failed
Tagged release / prepare-release (push) Failing after 5s
Tagged release / build-macos (push) Has been skipped
Tagged release / build-linux-arm64 (push) Has been skipped
Tagged release / build-linux-x64 (push) Has been skipped
Tagged release / build-windows (push) Has been skipped
Tagged release / publish-release (push) Has been skipped
This commit is contained in:
@@ -60,6 +60,7 @@ fn desktop_packages_have_native_icons_and_cargo_commands() {
|
||||
assert!(workspace_manifest.contains("Georg Bauer <gb@rfc1437.de>"));
|
||||
assert!(workspace_manifest.contains("strip = \"symbols\""));
|
||||
assert!(workspace_manifest.contains("ort-download-binaries-rustls-tls"));
|
||||
assert!(workspace_manifest.contains("\"sync-secret-service\", \"vendored\""));
|
||||
|
||||
let core_manifest =
|
||||
fs::read_to_string(Path::new(CRATE_DIR).join("../bds-core/Cargo.toml")).unwrap();
|
||||
@@ -82,3 +83,86 @@ fn desktop_packages_have_native_icons_and_cargo_commands() {
|
||||
assert!(packager.contains("CARGO_PACKAGER_FORMAT"));
|
||||
assert!(!packager.contains("--options"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn tagged_releases_are_built_and_packaged_with_rust_tools() {
|
||||
let workspace = Path::new(CRATE_DIR).join("../..");
|
||||
let manifest = fs::read_to_string(workspace.join("Cargo.toml")).unwrap();
|
||||
assert!(manifest.contains("\"crates/bds-release\""));
|
||||
for dependency in [
|
||||
"apple-bundles = \"0.21\"",
|
||||
"apple-codesign = { version = \"0.29\", default-features = false }",
|
||||
"apple-dmg = \"0.5\"",
|
||||
] {
|
||||
assert!(manifest.contains(dependency), "missing {dependency}");
|
||||
}
|
||||
|
||||
let release_manifest =
|
||||
fs::read_to_string(workspace.join("crates/bds-release/Cargo.toml")).unwrap();
|
||||
for dependency in [
|
||||
"apple-bundles.workspace = true",
|
||||
"apple-codesign.workspace = true",
|
||||
"apple-dmg.workspace = true",
|
||||
"flate2",
|
||||
"tar",
|
||||
"zip",
|
||||
] {
|
||||
assert!(
|
||||
release_manifest.contains(dependency),
|
||||
"release packager is missing {dependency}"
|
||||
);
|
||||
}
|
||||
|
||||
let workflow = fs::read_to_string(workspace.join(".gitea/workflows/release.yml")).unwrap();
|
||||
serde_yaml::from_str::<serde_yaml::Value>(&workflow).expect("valid release workflow YAML");
|
||||
for required in [
|
||||
"tags:",
|
||||
"runs-on: linux-arm64",
|
||||
"cargo-zigbuild",
|
||||
"aarch64-apple-darwin",
|
||||
"x86_64-apple-darwin",
|
||||
"aarch64-unknown-linux-gnu",
|
||||
"x86_64-unknown-linux-gnu",
|
||||
"cargo-xwin",
|
||||
"x86_64-pc-windows-msvc",
|
||||
"bds-release",
|
||||
"prepare",
|
||||
"package",
|
||||
"publish",
|
||||
"PKG_CONFIG_ALLOW_CROSS",
|
||||
"CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER",
|
||||
] {
|
||||
assert!(
|
||||
workflow.contains(required),
|
||||
"release workflow is missing {required}"
|
||||
);
|
||||
}
|
||||
for forbidden in ["python", "curl ", "hdiutil", "makensis", "tar -"] {
|
||||
assert!(
|
||||
!workflow.contains(forbidden),
|
||||
"release workflow must not use host tool {forbidden}"
|
||||
);
|
||||
}
|
||||
|
||||
let linux_dependencies =
|
||||
fs::read_to_string(workspace.join(".gitea/scripts/install-linux-build-dependencies.sh"))
|
||||
.unwrap();
|
||||
for required in [
|
||||
"libwebkit2gtk-4.1-dev",
|
||||
"libgtk-3-dev",
|
||||
"libxdo-dev",
|
||||
"libwebkit2gtk-4.1-dev:amd64",
|
||||
"gcc-x86-64-linux-gnu",
|
||||
] {
|
||||
assert!(
|
||||
linux_dependencies.contains(required),
|
||||
"Linux dependency setup is missing {required}"
|
||||
);
|
||||
}
|
||||
|
||||
let release_source =
|
||||
fs::read_to_string(workspace.join("crates/bds-release/src/packaging.rs")).unwrap();
|
||||
assert!(release_source.contains("LC_ID_DYLIB"));
|
||||
assert!(release_source.contains("rewrite_macho_rpaths"));
|
||||
assert!(!release_source.contains("Linux releases contain the portable CLI tools"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user