mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-26 20:00:32 +00:00
allow pre version bumps, run xtask tests in CI (#3800)
This commit is contained in:
parent
1d99fae9ee
commit
21069f30a0
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@ -162,6 +162,10 @@ jobs:
|
||||
toolchain: nightly
|
||||
components: rustfmt,miri
|
||||
|
||||
# Run xtask tests
|
||||
- name: Run xtask tests
|
||||
run: cd xtask && cargo test --features release
|
||||
|
||||
# Check the formatting of all packages:
|
||||
- run: cargo xtask fmt-packages --check
|
||||
|
||||
|
@ -217,6 +217,7 @@ fn bump_crate_version(
|
||||
|
||||
pub fn do_version_bump(version: &semver::Version, amount: &VersionBump) -> Result<semver::Version> {
|
||||
fn bump_version_number(version: &mut semver::Version, amount: &VersionBump) {
|
||||
log::info!("Bumping version number: {version} by {amount:?}");
|
||||
match amount {
|
||||
VersionBump::Major => {
|
||||
version.major += 1;
|
||||
@ -249,15 +250,11 @@ pub fn do_version_bump(version: &semver::Version, amount: &VersionBump) -> Resul
|
||||
if let Some(pre_version) = version.pre.as_str().strip_prefix(&format!("{pre}.")) {
|
||||
let pre_version = pre_version.parse::<u32>()?;
|
||||
version.pre = Prerelease::new(&format!("{pre}.{}", pre_version + 1)).unwrap();
|
||||
} else if version.pre.as_str().is_empty() {
|
||||
// Start a new pre-release
|
||||
bump_version_number(&mut version, &amount);
|
||||
version.pre = Prerelease::new(&format!("{pre}.0")).unwrap();
|
||||
} else {
|
||||
bail!(
|
||||
"Unexpected pre-release version format found: {}",
|
||||
version.pre.as_str()
|
||||
);
|
||||
// if the pre version is _not_ the same as the one we had, it's a new pre-release
|
||||
// use the new pre and reset the bump to 0
|
||||
// equally, if the version is not a pre-release, we need to append the pre-release
|
||||
version.pre = Prerelease::new(&format!("{pre}.0")).unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -359,21 +356,6 @@ mod test {
|
||||
("0.1.0", VersionBump::Patch, "0.1.1"),
|
||||
("0.1.0", VersionBump::Minor, "0.2.0"),
|
||||
("0.1.0", VersionBump::Major, "1.0.0"),
|
||||
(
|
||||
"0.1.0",
|
||||
VersionBump::PreRelease("alpha".to_string()),
|
||||
"0.1.1-alpha.0",
|
||||
),
|
||||
(
|
||||
"0.1.0",
|
||||
VersionBump::PreRelease("alpha".to_string()),
|
||||
"0.2.0-alpha.0",
|
||||
),
|
||||
(
|
||||
"0.1.0",
|
||||
VersionBump::PreRelease("alpha".to_string()),
|
||||
"1.0.0-alpha.0",
|
||||
),
|
||||
// amount is ignored, assuming same release cycle
|
||||
("0.1.0-beta.0", VersionBump::Minor, "0.1.0"),
|
||||
("0.1.0-beta.0", VersionBump::Major, "0.1.0"),
|
||||
@ -387,6 +369,11 @@ mod test {
|
||||
VersionBump::PreRelease("beta".to_string()),
|
||||
"0.1.0-beta.1",
|
||||
),
|
||||
(
|
||||
"0.1.0-beta.0",
|
||||
VersionBump::PreRelease("rc".to_string()),
|
||||
"0.1.0-rc.0",
|
||||
),
|
||||
];
|
||||
|
||||
for (version, amount, expected) in test_cases {
|
||||
|
Loading…
x
Reference in New Issue
Block a user