From d9bbe1916336e10986dda0f0bab172526902024b Mon Sep 17 00:00:00 2001 From: c0repwn3r Date: Fri, 21 Apr 2023 09:31:40 -0400 Subject: [PATCH] build numbers --- Jenkinsfile | 4 ++-- server/build.rs | 6 ++++++ server/src/main.rs | 8 +++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index b2aa14a8af67faecf2e1ca7843d9f45d35077c47..f96962faf8ea1c8bbac59e0c3d2aba868d4e98f6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,8 +20,8 @@ pipeline { stage('Docker') { steps { sh 'docker login registry.gitlab.com -u ${DOCKER_LOGIN_CREDS_USR} -p ${DOCKER_LOGIN_CREDS_PSW}' - sh './spacetime build_docker_api' - sh './spacetime build_docker_server' + sh 'STK_CHANNEL=bleeding STK_BUILD_NUM=${BUILD_NUMBER} ./spacetime build_docker_api' + sh 'STK_CHANNEL=bleeding STK_BUILD_NUM=${BUILD_NUMBER} ./spacetime build_docker_server' } } } diff --git a/server/build.rs b/server/build.rs index 27586332d472537a7216f95a4a8f196cc3856d06..1667b86fa790ad441a81877179b96a598a8bc565 100644 --- a/server/build.rs +++ b/server/build.rs @@ -1,3 +1,4 @@ +use std::process::Command; use cargo_metadata::MetadataCommand; fn main() { @@ -15,8 +16,13 @@ fn main() { let version_name = root.metadata["version-name"].to_string().replace('"', ""); let description = root.metadata["slp-description"].to_string().replace('"', ""); + let output = Command::new("git").args(["rev-parse", "--short", "HEAD"]).output().unwrap(); + let git_hash = String::from_utf8(output.stdout).unwrap(); + println!("cargo:rustc-env=STK_VERSION={}", version); println!("cargo:rustc-env=STK_VERSION_NAME={}", version_name); println!("cargo:rustc-env=STK_SLP_DESCRIPTION={}", description); + println!("cargo:rustc-env=STK_CHANNEL={}", std::env::var("STK_CHANNEL").unwrap_or("dev".to_string())); + println!("cargo:rustc-env=STK_BUILD={}-{}-{}", std::env::var("STK_CHANNEL").unwrap_or("dev".to_string()), std::env::var("STK_BUILD_NUM").unwrap_or("local".to_string()), git_hash); println!("cargo:rerun-if-changed=Cargo.toml"); } \ No newline at end of file diff --git a/server/src/main.rs b/server/src/main.rs index c8ed8453205b08d8894cabcf393594ef10cb7c7c..49af17ab71be959df0c1c34f5ebdeaef814264ba 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -58,6 +58,8 @@ async fn _handle_request(mut conn: TcpStream, remote_addr: SocketAddr, mgr: Clie name: env!("STK_VERSION_NAME").to_string(), // Set by build.rs number: env!("STK_VERSION").to_string(), // Set by build.rs protocol: PROTOCOL_VERSION, + channel: env!("STK_CHANNEL").to_string(), + build: env!("STK_BUILD").to_string() }, players: CMGR.usernames.read().await.len() as u32, description: env!("STK_SLP_DESCRIPTION").to_string(), @@ -162,6 +164,8 @@ lazy_static! { async fn main() { simple_logger::init_with_level(Level::Debug).expect("Unable to start logging service"); + info!("StarKingdoms server (v: {}, build {})", env!("STK_VERSION"), env!("STK_BUILD")); + if std::env::var("STK_API_KEY").is_err() { error!("Unable to read the API key from STK_API_KEY. Ensure it is set, and has a valid value."); std::process::exit(1); @@ -209,5 +213,7 @@ pub struct ServerPingResponse { pub struct ServerPingResponseVersion { pub name: String, pub number: String, - pub protocol: u32 + pub protocol: u32, + pub channel: String, + pub build: String }