diff --git a/components/utils/src/build.rs b/components/utils/src/build.rs index daac6219..90af20e1 100644 --- a/components/utils/src/build.rs +++ b/components/utils/src/build.rs @@ -19,11 +19,11 @@ use semver::{BuildMetadata, Prerelease, Version}; const PATTERN_PRE: &str = r"rc\.\d+"; -pub fn version_string(cargo_pkg_version: &str) -> String { +pub fn version_string(project: &str, cargo_pkg_version: &str) -> String { let mut version = crate_version(cargo_pkg_version); let test_prerelease = test_prerelease(); - if let Some(tag_version) = tag_version() { + if let Some(tag_version) = tag_version(project) { assert_eq!( tag_version.major, version.major, "bad major component in tag" @@ -80,7 +80,10 @@ fn crate_version(cargo_pkg_version: &str) -> Version { version } -fn tag_version() -> Option { +fn tag_version(project: &str) -> Option { + if option_env!("CI_PROJECT_NAME")? != project { + return None; + } option_env!("CI_COMMIT_TAG") .map(|s| s.strip_prefix('v').expect("tag must start with v")) .map(|s| Version::parse(s).expect("failed to parse version from tag")) diff --git a/runners/embedded/build.rs b/runners/embedded/build.rs index b12f91d2..5bcf896a 100644 --- a/runners/embedded/build.rs +++ b/runners/embedded/build.rs @@ -62,7 +62,7 @@ fn generate_memory_x(outpath: &Path, template: &str, regions: &MemoryRegions) { fn main() -> Result<(), Box> { println!( "cargo:rustc-env=NK3_FIRMWARE_VERSION={}", - utils::version_string(env!("CARGO_PKG_VERSION")) + utils::version_string("nitrokey-3-firmware", env!("CARGO_PKG_VERSION")) ); // @todo: add profile 'platform' items and cross-check them here ... diff --git a/runners/nkpk/build.rs b/runners/nkpk/build.rs index f9eb48a4..ecf9a016 100644 --- a/runners/nkpk/build.rs +++ b/runners/nkpk/build.rs @@ -27,7 +27,7 @@ fn generate_memory_x(outpath: &Path, template: &str, regions: &MemoryRegions) { fn main() -> Result<(), Box> { println!( "cargo:rustc-env=NKPK_FIRMWARE_VERSION={}", - utils::version_string(env!("CARGO_PKG_VERSION")) + utils::version_string("nitrokey-passkey-firmware", env!("CARGO_PKG_VERSION")) ); if MEMORY_REGIONS.filesystem.start & 0x3ff != 0 { diff --git a/runners/usbip/build.rs b/runners/usbip/build.rs index b8ea9ff8..aa44e623 100644 --- a/runners/usbip/build.rs +++ b/runners/usbip/build.rs @@ -1,6 +1,6 @@ fn main() { println!( "cargo:rustc-env=USBIP_FIRMWARE_VERSION={}", - utils::version_string(env!("CARGO_PKG_VERSION")) + utils::version_string("nitrokey-3-firmware", env!("CARGO_PKG_VERSION")) ); }