fix(ci): remove weekly MSRV release run
This commit is contained in:
@@ -205,30 +205,11 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
];
|
||||
let stages: [(&str, Vec<CommandSpec>); 4] = [
|
||||
(
|
||||
"msrv-and-portable-cross-targets",
|
||||
"portable-cross-targets",
|
||||
vec![
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.96.0",
|
||||
"check",
|
||||
"--locked",
|
||||
"--all-targets",
|
||||
"--no-default-features",
|
||||
"-p",
|
||||
"libremetaverse-types",
|
||||
"-p",
|
||||
"libremetaverse-structured-data",
|
||||
"-p",
|
||||
"libremetaverse-imaging",
|
||||
"-p",
|
||||
"libremetaverse-prim-mesher",
|
||||
],
|
||||
),
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"check",
|
||||
"--locked",
|
||||
"--target",
|
||||
@@ -247,7 +228,6 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"check",
|
||||
"--locked",
|
||||
"--target",
|
||||
@@ -271,7 +251,6 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"bench",
|
||||
"--locked",
|
||||
"-p",
|
||||
@@ -284,7 +263,6 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"bench",
|
||||
"--locked",
|
||||
"-p",
|
||||
@@ -297,7 +275,6 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"run",
|
||||
"--locked",
|
||||
"-p",
|
||||
@@ -317,7 +294,6 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"package",
|
||||
"--locked",
|
||||
"--no-verify",
|
||||
@@ -358,7 +334,6 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"build",
|
||||
"--locked",
|
||||
"--release",
|
||||
@@ -375,7 +350,6 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"run",
|
||||
"--locked",
|
||||
"-p",
|
||||
@@ -393,7 +367,6 @@ pub fn run_release_gate(root: &Path, evidence_path: &Path) -> Result<()> {
|
||||
CommandSpec::new(
|
||||
"cargo",
|
||||
&[
|
||||
"+1.97.1",
|
||||
"run",
|
||||
"--locked",
|
||||
"-p",
|
||||
@@ -1102,9 +1075,15 @@ fn validate_workflows(root: &Path, manifest: &CoverageManifest) -> Result<()> {
|
||||
"tracked mtimes must be blob-stable across commits, not commit-wide",
|
||||
));
|
||||
}
|
||||
if release.contains("pull_request:") || !release.contains("workflow_dispatch:") {
|
||||
if release.contains("pull_request:")
|
||||
|| release.contains("schedule:")
|
||||
|| !release.contains("workflow_dispatch:")
|
||||
|| !release.contains("tags:")
|
||||
|| !release.contains("toolchain: 1.97.1")
|
||||
|| release.matches("toolchain:").count() != 1
|
||||
{
|
||||
return Err(MatrixError::new(
|
||||
"release workflow must be explicitly non-routine",
|
||||
"release workflow must be manual or tag-triggered and install only Rust 1.97.1",
|
||||
));
|
||||
}
|
||||
for path in &workflow_paths {
|
||||
|
||||
@@ -14,7 +14,6 @@ const REWRITE_PATH: &str = "RUSTREWRITE.md";
|
||||
#[derive(Debug, Deserialize)]
|
||||
struct DependencyPolicy {
|
||||
schema: u32,
|
||||
msrv: String,
|
||||
current: String,
|
||||
reviewed_on: String,
|
||||
review_by: String,
|
||||
@@ -56,7 +55,6 @@ struct ObservedGraph {
|
||||
#[derive(Debug, Serialize)]
|
||||
struct DependencyEvidence<'a> {
|
||||
schema: u32,
|
||||
msrv: &'a str,
|
||||
current: &'a str,
|
||||
reviewed_on: &'a str,
|
||||
review_by: &'a str,
|
||||
@@ -98,7 +96,6 @@ pub fn audit_dependencies(root: &Path, evidence: &Path) -> Result<()> {
|
||||
.collect();
|
||||
let evidence_record = DependencyEvidence {
|
||||
schema: 1,
|
||||
msrv: &policy.msrv,
|
||||
current: &policy.current,
|
||||
reviewed_on: &policy.reviewed_on,
|
||||
review_by: &policy.review_by,
|
||||
@@ -127,9 +124,9 @@ pub fn audit_dependencies(root: &Path, evidence: &Path) -> Result<()> {
|
||||
}
|
||||
|
||||
fn validate_policy(policy: &DependencyPolicy, rewrite: &str) -> Result<()> {
|
||||
if policy.schema != 1 || policy.msrv != "1.96.0" || policy.current != "stable" {
|
||||
if policy.schema != 1 || policy.current != "stable" {
|
||||
return Err(MatrixError::new(
|
||||
"dependency policy must use schema 1, MSRV 1.96.0, and current stable",
|
||||
"dependency policy must use schema 1 and current stable Rust",
|
||||
));
|
||||
}
|
||||
if !date_shape(&policy.reviewed_on) || !date_shape(&policy.review_by) {
|
||||
|
||||
@@ -29,8 +29,7 @@ pub use release_candidate::audit_release_candidate;
|
||||
|
||||
pub const MATRIX_PATH: &str = "ci/release-matrix.json";
|
||||
const WORKFLOW_PATH: &str = ".gitea/workflows/release.yml";
|
||||
const REQUIRED_PROFILES: [&str; 7] = [
|
||||
"linux-msrv-portable",
|
||||
const REQUIRED_PROFILES: [&str; 6] = [
|
||||
"linux-stable-default",
|
||||
"linux-stable-minimal",
|
||||
"linux-stable-features",
|
||||
@@ -99,7 +98,6 @@ pub type Result<T> = std::result::Result<T, MatrixError>;
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct ReleaseMatrix {
|
||||
pub schema: u32,
|
||||
pub msrv: String,
|
||||
pub current: String,
|
||||
pub native_prerequisites: Vec<NativePrerequisite>,
|
||||
pub manual_gates: Vec<String>,
|
||||
@@ -194,9 +192,9 @@ pub fn audit_shape(matrix: &ReleaseMatrix) -> Result<()> {
|
||||
if matrix.schema != 1 {
|
||||
return Err(MatrixError::new("release matrix schema must be 1"));
|
||||
}
|
||||
if matrix.msrv != "1.96.0" || matrix.current != "stable" {
|
||||
if matrix.current != "stable" {
|
||||
return Err(MatrixError::new(
|
||||
"release matrix must cover Rust 1.96.0 and current stable",
|
||||
"release matrix must use the current stable Rust toolchain",
|
||||
));
|
||||
}
|
||||
|
||||
@@ -238,11 +236,10 @@ pub fn audit_shape(matrix: &ReleaseMatrix) -> Result<()> {
|
||||
let (platforms, toolchains, feature_sets) = audit_profiles(matrix, &prerequisite_ids)?;
|
||||
audit_release_surface(matrix)?;
|
||||
if platforms != BTreeSet::from(["linux", "macos", "windows"])
|
||||
|| !toolchains.contains("stable")
|
||||
|| !toolchains.contains("1.96.0")
|
||||
|| toolchains != BTreeSet::from(["stable"])
|
||||
{
|
||||
return Err(MatrixError::new(
|
||||
"matrix must cover Linux, macOS, Windows, MSRV, and stable",
|
||||
"matrix must cover Linux, macOS, and Windows with stable Rust",
|
||||
));
|
||||
}
|
||||
for required in REQUIRED_FEATURE_SETS {
|
||||
|
||||
@@ -33,7 +33,7 @@ fn execute() -> Result<(), Box<dyn std::error::Error>> {
|
||||
Some("audit") if arguments.next().is_none() => {
|
||||
audit(&root, &matrix)?;
|
||||
println!(
|
||||
"release CI matrix: {} validated profiles; Linux, Windows, macOS, MSRV, stable, default/minimal/optional features, tests, examples, and docs covered",
|
||||
"release CI matrix: {} validated profiles; Linux, Windows, macOS, stable, default/minimal/optional features, tests, examples, and docs covered",
|
||||
matrix.profiles.len()
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user