Add commit hash for versioning
Some checks failed
Build and push container image / build (push) Has been cancelled

This commit is contained in:
toast 2024-08-08 16:37:55 +10:00
parent e519407557
commit b54db60ce4
7 changed files with 26 additions and 6 deletions

View File

@ -36,6 +36,7 @@ jobs:
with:
context: .
platforms: linux/amd64
args: GIT_HASH=${{ env.GITHUB_SHA }}
push: true
tags: git.toast-server.net/toast/kon:main
build-args: CARGO_TOKEN=${{ secrets.CARGO_TOKEN }}

2
Cargo.lock generated
View File

@ -1020,7 +1020,7 @@ dependencies = [
[[package]]
name = "kon"
version = "0.3.11"
version = "0.3.12"
dependencies = [
"bb8",
"bb8-postgres",

View File

@ -1,6 +1,6 @@
[package]
name = "kon"
version = "0.3.11"
version = "0.3.12"
edition = "2021"
[dependencies]

View File

@ -1,5 +1,7 @@
FROM rust:1.80-alpine3.20 AS chef
ENV RUSTFLAGS="-C target-feature=-crt-static"
ARG GIT_HASH
ENV GIT_COMMIT_HASH=${GIT_HASH}
RUN apk add --no-cache openssl-dev musl-dev
RUN cargo install cargo-chef
WORKDIR /builder

10
build.rs Normal file
View File

@ -0,0 +1,10 @@
fn main() {
#[cfg(feature = "production")]
{
if let Ok(git_commit_hash) = std::env::var("GIT_COMMIT_HASH") {
println!("cargo:rustc-env=GIT_COMMIT_HASH={}", &git_commit_hash[..7]);
} else {
println!("cargo:rustc-env=GIT_COMMIT_HASH=no_env_set");
}
}
}

View File

@ -1,9 +1,10 @@
use crate::{
Error,
GIT_COMMIT_HASH,
internals::utils::{
BOT_VERSION,
format_duration,
concat_message,
BOT_VERSION
concat_message
}
};
@ -69,7 +70,7 @@ pub async fn uptime(ctx: poise::Context<'_, (), Error>) -> Result<(), Error> {
}
let stat_msg = vec![
format!("**{} {}**", _bot.name, BOT_VERSION.as_str()),
format!("**{} {}** `{}`", _bot.name, BOT_VERSION.as_str(), GIT_COMMIT_HASH),
format!(">>> System: `{}`", format_duration(sys_uptime)),
format!("Process: `{}`", format_duration(proc_uptime)),
format!("CPU: `{}`", format!("{}", cpu[0].brand())),

View File

@ -7,6 +7,7 @@ mod internals;
use crate::{
internals::{
utils::{
BOT_VERSION,
token_path,
mention_dev
},
@ -43,6 +44,10 @@ use poise::serenity_prelude::{
type Error = Box<dyn std::error::Error + Send + Sync>;
static TASK_RUNNING: AtomicBool = AtomicBool::new(false);
#[cfg(feature = "production")]
pub static GIT_COMMIT_HASH: &str = env!("GIT_COMMIT_HASH");
pub static GIT_COMMIT_HASH: &str = "devel";
async fn on_ready(
ctx: &Context,
ready: &Ready,
@ -56,6 +61,7 @@ async fn on_ready(
println!("Event[Ready][Notice]: Session limit: {}/{}", session.remaining, session.total);
}
println!("Event[Ready]: Build version: {} ({})", BOT_VERSION.to_string(), GIT_COMMIT_HASH);
println!("Event[Ready]: Connected to API as {}", ready.user.name);
let message = CreateMessage::new();
@ -173,7 +179,7 @@ async fn main() {
Some(guild) => guild.name.clone(),
None => String::from("Direct Message")
};
println!("Discord[{}] {} ran /{}", get_guild_name, ctx.author().name, ctx.command().qualified_name);
println!("Discord[{}]: {} ran /{}", get_guild_name, ctx.author().name, ctx.command().qualified_name);
}),
on_error: |error| Box::pin(async move {
match error {