Compare commits

...

4 commits

Author SHA1 Message Date
d6bbb28dfa Move create release out
All checks were successful
Build & Deploy MSTBot / Build & push runner image (push) Successful in 7s
Build & Deploy MSTBot / Build, push & deploy (push) Successful in 10s
Build & Deploy MSTBot / Create release (push) Successful in 8s
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
2026-09-26 00:37:40 -06:00
94a0eebd1e Resolve workflow dependency issue 2026-09-26 00:37:40 -06:00
f5d8f2659a Resolve issues after adding query port 2026-09-26 00:37:40 -06:00
6b15657158 Need custom runner
Oops wrong branch
2026-09-26 00:37:35 -06:00
3 changed files with 46 additions and 15 deletions

View file

@ -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 jq curl
# Verify installations
RUN docker --version && node --version && npm --version

View file

@ -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,18 +56,24 @@ 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
- 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

View file

@ -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,))