From c4fe3b89278aa4b8cce5ab93727e2d7e10a58711 Mon Sep 17 00:00:00 2001 From: Michael Hensley <29671149+ZRexshima@users.noreply.github.com> Date: Sat, 4 Jul 2026 19:43:57 +0900 Subject: [PATCH] Adds commit hash to environmental variables and healthcheck cog adds dockerfile automation --- src/Dockerfile-bot | 9 ++++++++- src/bot/botrunner.sh | 4 ++++ src/bot/cogs/admin/healthchecks.py | 9 +++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100755 src/bot/botrunner.sh diff --git a/src/Dockerfile-bot b/src/Dockerfile-bot index e6c7c4f..cef9d01 100644 --- a/src/Dockerfile-bot +++ b/src/Dockerfile-bot @@ -16,12 +16,19 @@ COPY src/bot/pyproject.toml src/bot/pyproject.toml RUN --mount=type=cache,target=/root/.cache/uv \ uv sync --frozen --no-install-project --no-dev --package eos-bot +RUN apt-get update \ + && apt-get install -y --no-install-recommends git \ + && rm -rf /var/lib/apt/lists/* + COPY src/bot ./src/bot RUN --mount=type=cache,target=/root/.cache/uv \ uv sync --frozen --no-dev --package eos-bot +RUN --mount=source=../.git,target=.git,type=bind \ + git rev-parse --short HEAD > /commit_hash.txt + RUN useradd -r -M botuser && chown -R botuser:botuser /bot USER botuser -CMD ["uv", "run", "--frozen", "--no-cache", "--no-dev", "--package", "eos-bot", "python", "src/bot/main.py"] +ENTRYPOINT ["./src/bot/botrunner.sh"] diff --git a/src/bot/botrunner.sh b/src/bot/botrunner.sh new file mode 100755 index 0000000..7409480 --- /dev/null +++ b/src/bot/botrunner.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +export GIT_HASH=$(cat /commit_hash.txt) +uv run --frozen --no-cache --no-dev --package eos-bot python src/bot/main.py diff --git a/src/bot/cogs/admin/healthchecks.py b/src/bot/cogs/admin/healthchecks.py index 428a462..650c3e0 100644 --- a/src/bot/cogs/admin/healthchecks.py +++ b/src/bot/cogs/admin/healthchecks.py @@ -1,5 +1,6 @@ import datetime import logging +import os import discord from discord.ext import commands @@ -7,7 +8,7 @@ logger = logging.getLogger(__name__) -def embed_hc(api, db, uptime): +def embed_hc(api, db, uptime, git_hash): """ Embedding for avatar change alerts. """ @@ -25,6 +26,7 @@ def embed_hc(api, db, uptime): embed.add_field(name=api.get("message"), value=api.get("status_code"), inline=False) embed.add_field(name=db.get("message"), value=db.get("status_code"), inline=False) embed.add_field(name="Uptime:", value=uptime, inline=False) + embed.add_field(name="Commit Hash:", value=git_hash, inline=False) return embed @@ -77,7 +79,10 @@ async def hc(self, ctx: commands.Context) -> None: uptime = self.get_uptime(self.bot.boot_time) - await ctx.reply(embed=embed_hc(api_info, db_info, uptime)) + # Get commit hash from .env file + git_hash = os.getenv("GIT_HASH", default="Spam, Spam, Spam, Egg, and Spam!") + + await ctx.reply(embed=embed_hc(api_info, db_info, uptime, git_hash)) def get_uptime(self, boot_time: datetime.datetime) -> str: """Get uptime from bot"""