From 5b073af74b823976e30eca872dec434e0f5f1f5b Mon Sep 17 00:00:00 2001 From: Benjamin Morgan Date: Fri, 25 Sep 2026 22:18:36 -0600 Subject: [PATCH 1/5] Ah --- .forgejo/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index 1fec589..25a5d56 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -3,7 +3,7 @@ name: Build & Deploy MSTBot on: push: branches: - - main + - master tags: - "v*.*.*" # only match version tags like v1.0.0 From 6b15657158cc5c844e5797c6f787329033afc539 Mon Sep 17 00:00:00 2001 From: Benjamin Morgan Date: Fri, 25 Sep 2026 22:32:59 -0600 Subject: [PATCH 2/5] Need custom runner Oops wrong branch --- .forgejo/runner/Dockerfile | 7 +++++++ .forgejo/workflows/deploy.yml | 21 ++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 .forgejo/runner/Dockerfile diff --git a/.forgejo/runner/Dockerfile b/.forgejo/runner/Dockerfile new file mode 100644 index 0000000..6e3bfa1 --- /dev/null +++ b/.forgejo/runner/Dockerfile @@ -0,0 +1,7 @@ +FROM code.forgejo.org/oci/docker:cli + +# Install Node 24 from Alpine +RUN apk add --no-cache nodejs-current npm bash curl + +# Verify installations +RUN docker --version && node --version && npm --version \ No newline at end of file diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index 25a5d56..b387651 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -8,9 +8,28 @@ on: - "v*.*.*" # only match version tags like v1.0.0 jobs: + prepare: + name: Build & push runner image + runs-on: docker-cli-node24 + steps: + - name: Checkout runner Dockerfile + uses: actions/checkout@v5 + with: + sparse-checkout: | + .forgejo/runner/Dockerfile + sparse-checkout-cone-mode: false + fetch-depth: 1 + + - name: Build & push runner image + run: | + docker build --network=host -t ${{ vars.REGISTRY_URL }}/minecraftstatus/runner:latest -f .forgejo/runner/Dockerfile . + docker push ${{ vars.REGISTRY_URL }}/minecraftstatus/runner:latest + build-and-deploy: name: Build, push & deploy runs-on: docker-cli-node24 + container: + image: ${{ vars.REGISTRY_URL }}/minecraftstatus/runner:latest steps: - name: Checkout code uses: actions/checkout@v5 @@ -37,7 +56,7 @@ jobs: script: | set -euo pipefail cd /opt/mstbot - curl -f -H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" -o docker-compose.yml "https://git.benrmorgan.com/api/v1/repos/bMorgan/MinecraftStatus/raw/main/docker-compose.yml" + curl -f -H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" -o docker-compose.yml "https://git.benrmorgan.com/api/v1/repos/bMorgan/MinecraftStatus/raw/master/docker-compose.yml" docker compose down docker compose pull docker compose up -d From f5d8f2659a4745926c307a055af4c52d4be3a02e Mon Sep 17 00:00:00 2001 From: Benjamin Morgan Date: Fri, 25 Sep 2026 23:45:07 -0600 Subject: [PATCH 3/5] Resolve issues after adding query port --- src/mstbot.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/mstbot.py b/src/mstbot.py index 99a292b..09814e3 100644 --- a/src/mstbot.py +++ b/src/mstbot.py @@ -173,8 +173,8 @@ class Other(commands.Cog): @commands.command(brief="Shows server status", description="Shows server status.") async def status(self, ctx: discord.ext.commands.context.Context): with sqlite_conn() as conn: - ip, port = getMCIP(ctx.guild.id, conn) - mc = JavaServer(ip, port) + ip, port, query_port = getMCIP(ctx.guild.id, conn) + mc = JavaServer(ip, port, query_port) if mc is None: await safe_send("There is no server query set up. Run the `setup` command to get started.", ctx=ctx) @@ -193,8 +193,7 @@ class Other(commands.Cog): @commands.command(brief="Lists online players", description="Lists online players.") async def players(self, ctx: discord.ext.commands.context.Context): with sqlite_conn() as conn: - ip, port = getMCIP(ctx.guild.id, conn) - mc = JavaServer(ip, port) + mc = JavaServer(*getMCIP(ctx.guild.id, conn)) if mc is None: await safe_send("There is no server query set up. Run the `setup` command to get started.", ctx=ctx) @@ -211,8 +210,8 @@ class Other(commands.Cog): @commands.command(brief="Shows last query time", description="Shows last query time. Useful for debugging server connection issues.") async def lastquery(self, ctx: discord.ext.commands.context.Context): with sqlite_conn() as conn: - ip, port = getMCIP(ctx.guild.id, conn) - mc = JavaServer(ip, port) + ip, port, query_port = getMCIP(ctx.guild.id, conn) + mc = JavaServer(ip, port, query_port) last = getMCQueryTime(ctx.guild.id, conn) if mc is None: @@ -237,7 +236,7 @@ async def setAnn(ctx: discord.ext.commands.context.Context, ann: bool, cid: Unio return with sqlite_conn() as conn: - ip, _ = getMCIP(ctx.guild.id, conn) + ip, _, _ = getMCIP(ctx.guild.id, conn) conn.execute(""" UPDATE servers @@ -259,7 +258,7 @@ async def setAnn(ctx: discord.ext.commands.context.Context, ann: bool, cid: Unio async def setShowHours(ctx: discord.ext.commands.context.Context, show_hours: bool): with sqlite_conn() as conn: - ip, _ = getMCIP(ctx.guild.id, conn) + ip, _, _ = getMCIP(ctx.guild.id, conn) conn.execute(""" UPDATE servers @@ -484,8 +483,8 @@ async def do_bot_cleanup(sid: int, ctx: Union[discord.ext.commands.context.Conte print(currServ.name, "Error: I don't have permission to delete channels.") with sqlite_conn() as conn: - ip, port = getMCIP(sid, conn) - mc = JavaServer(ip, port) + ip, port, query_port = getMCIP(sid, conn) + mc = JavaServer(ip, port, query_port) conn.execute("DELETE FROM servers WHERE id = ?", (sid,)) conn.execute("DELETE FROM names WHERE id = ?", (sid,)) From 94a0eebd1e68b966fab8e3f4ea94b6fe0fbb2943 Mon Sep 17 00:00:00 2001 From: Benjamin Morgan Date: Sat, 26 Sep 2026 00:07:44 -0600 Subject: [PATCH 4/5] Resolve workflow dependency issue --- .forgejo/runner/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/runner/Dockerfile b/.forgejo/runner/Dockerfile index 6e3bfa1..4b17189 100644 --- a/.forgejo/runner/Dockerfile +++ b/.forgejo/runner/Dockerfile @@ -1,7 +1,7 @@ FROM code.forgejo.org/oci/docker:cli # Install Node 24 from Alpine -RUN apk add --no-cache nodejs-current npm bash curl +RUN apk add --no-cache nodejs-current npm bash jq curl # Verify installations RUN docker --version && node --version && npm --version \ No newline at end of file From d6bbb28dfa26a798aa5f2f6354cf6a4c6c9bda89 Mon Sep 17 00:00:00 2001 From: Benjamin Morgan Date: Sat, 26 Sep 2026 00:09:00 -0600 Subject: [PATCH 5/5] Move create release out Include runs-on in workflow create release MISAY Man I suck at YAML Why don't actions get documented at all I don't need to download anything I just want release notes Nevermind --- .forgejo/workflows/deploy.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index b387651..7576870 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -61,13 +61,19 @@ jobs: docker compose pull docker compose up -d - - name: Create Release - if: startsWith(github.ref, 'refs/tags/') - uses: actions/forgejo-release@v2.7.3 + create-release: + name: Create release + if: startsWith(github.ref, 'refs/tags/') + runs-on: docker-cli-node24 + container: + image: ${{ vars.REGISTRY_URL }}/minecraftstatus/runner:latest + steps: + - name: Create release + uses: actions/forgejo-release@v2.13.4 with: direction: upload title: ${{ github.ref_name }} tag: ${{ github.ref_name }} token: ${{ secrets.FORGEJO_TOKEN }} - release-dir: . + skip-assets: true release-notes-assistant: true \ No newline at end of file