refactor version logic

This commit is contained in:
Mengran Lan
2024-08-13 19:25:53 +08:00
parent 376e300d2a
commit 9927cae104
2 changed files with 10 additions and 21 deletions

View File

@@ -35,8 +35,10 @@ else
ZK_VERSION=${ZKEVM_COMMIT}-${HALO2_GPU_VERSION}
endif
RELEASE_VERSION=${GO_TAG}-${GIT_REV}-${ZK_VERSION}
prover:
GO_TAG=${GO_TAG} GIT_REV=${GIT_REV} ZK_VERSION=${ZK_VERSION} cargo build --release
RELEASE_VERSION=${RELEASE_VERSION} cargo build --release
tests_binary:
cargo clean && cargo test --release --no-run

View File

@@ -1,27 +1,14 @@
use std::{borrow::Cow, cell::OnceCell};
use std::borrow::Cow;
static DEFAULT_COMMIT: &str = "unknown";
static mut VERSION: OnceCell<String> = OnceCell::new();
pub const DEFAULT_TAG: &str = "v0.0.0";
pub const DEFAULT_ZK_VERSION: &str = "000000-000000";
static TAG: Option<&str> = option_env!("GO_TAG");
fn init_version() -> String {
let commit = option_env!("GIT_REV").unwrap_or(DEFAULT_COMMIT);
let tag = TAG.unwrap_or(DEFAULT_TAG);
let zk_version = option_env!("ZK_VERSION").unwrap_or(DEFAULT_ZK_VERSION);
format!("{tag}-{commit}-{zk_version}")
}
static RELEASE_VERSION: Option<&str> = option_env!("RELEASE_VERSION");
const DEFAULT_VERSION: &str = "v0.0.0-unknown-000000-000000";
pub fn get_version() -> String {
unsafe { VERSION.get_or_init(init_version).clone() }
RELEASE_VERSION.unwrap_or(DEFAULT_VERSION).to_string()
}
pub fn get_version_cow() -> Cow<'static, str> {
let v = TAG.unwrap_or(DEFAULT_TAG);
let v = RELEASE_VERSION.unwrap_or(DEFAULT_VERSION);
std::borrow::Cow::Borrowed(v)
}
@@ -42,8 +29,8 @@ mod tests {
fn test_get_version_cow() -> Result<()> {
let version = get_version_cow();
assert_eq!(get_version(), "v0.0.0-unknown-000000-000000");
assert_eq!(&version, "v0.0.0");
assert_eq!(get_version(), DEFAULT_VERSION);
assert_eq!(&version, DEFAULT_VERSION);
Ok(())
}
}