Compare commits

..
Author SHA1 Message Date
wayfinderak dd2e479361 Resolve upstream Actions explicitly and check out the exact event revision
Build and Push Container / build-and-push (pull_request) Successful in 1m5s
2026-09-11 09:14:35 +00:00
wayfinderak 593d6c552e feat(delivery): publish immutable source images and declare release
Build and Push Container / build-and-push (pull_request) Failing after 3s
2026-09-11 08:53:23 +00:00
wayfinderak 198c3e7952 Cancel superseded pull request validation without cancelling releases 2026-09-11 08:47:06 +00:00
wayfinderak d1eb5f05af Run pull request validation once through native CI 2026-09-11 08:37:24 +00:00
wayfinderak 67cc71b05c Scope documentation CI and isolate delivery job resources 2026-09-11 08:10:34 +00:00
wayfinderak eeabf6308e Stop tracking Portainer secrets
Build and Push Container / build-and-push (push) Successful in 2m11s
2026-05-07 18:39:29 -08:00
wayfinderak db701b6c3e Tag latest image from master branch 2026-05-07 15:17:28 -08:00
wayfinderak 6fb3a2251d Add Portainer deployment files 2026-05-07 13:55:20 -08:00
wayfinderak 185ff03d37 Remove incomplete raffle service references 2026-05-04 15:48:18 -08:00
wayfinderak efd86465e5 Update .gitea/workflows/build-and-push.yml 2026-03-23 06:13:39 +00:00
wayfinderak a973babd3b Update .gitea/workflows/build-and-push.yml 2026-03-23 06:12:34 +00:00
wayfinderak 3e3d7de9f1 Migrate deployment to Gitea Actions and Portainer 2026-03-22 11:43:22 -08:00
Dustin Pianalto 1bb20a3c16 Add pgbouncer 2021-10-10 21:54:49 -08:00
Dustin Pianalto eb43a08b39 Update registry 2021-10-05 23:47:59 -08:00
Dustin Pianalto 5b95741deb Don't run migrations 2021-10-02 17:56:03 -08:00
Dustin Pianalto e67f8b3684 Merge branch 'development' 2021-10-02 17:17:28 -08:00
Dustin Pianalto a4e38eb3ae Update action 2021-10-02 16:59:49 -08:00
Dustin Pianalto f4e30a780f Update deployment and action 2021-10-02 16:58:26 -08:00
Dustin Pianalto ca8fc36e76 Update deployment and action 2021-10-02 16:42:40 -08:00
Dustin Pianalto 9a238bbbdc force bot to run on node with label 2021-07-19 13:06:16 -08:00
Dustin Pianalto 77785aa562 force bot to run on node with label 2021-07-19 12:49:57 -08:00
Dustin Pianalto b462b3a64b Test broadcast response 2021-06-30 22:00:38 -08:00
Dustin Pianalto 13da7a2b2d Test broadcast response 2021-06-30 21:54:35 -08:00
Dustin Pianalto 59576f3321 Test broadcast response 2021-06-30 21:46:31 -08:00
Dustin Pianalto c06d53532f Test broadcast response 2021-06-30 21:10:53 -08:00
Dustin Pianalto 12acd92a02 Test broadcast response 2021-06-30 21:00:43 -08:00
Dustin Pianalto b7446e0307 Test broadcast response 2021-06-30 20:56:51 -08:00
Dustin Pianalto 1f2ac29ca8 Test broadcast response 2021-06-30 14:51:04 -08:00
Dustin Pianalto 0f77d80408 Test broadcast response 2021-06-30 14:34:03 -08:00
Dustin Pianalto 626efeff74 Add broadcast command 2021-02-24 17:18:52 -09:00
Dustin Pianalto b963c070ea Add broadcast command 2021-02-24 17:09:35 -09:00
Dustin Pianalto 9ab0c0fe71 Add broadcast command 2021-02-24 16:29:42 -09:00
Dustin Pianalto 3e87a3df02 Compare servernames as lower 2021-02-24 14:29:32 -09:00
Dustin Pianalto 4852c42e8d Update format on listplayers output 2021-02-24 14:10:55 -09:00
Dustin Pianalto b29d7b4dab Add initial listplayers 2021-02-24 14:06:18 -09:00
Dustin Pianalto 5ffbd5fead Add initial listplayers 2021-02-24 14:01:20 -09:00
Dustin Pianalto 2f96c6f806 Add initial listplayers 2021-02-24 13:53:43 -09:00
Dustin Pianalto a011f3cd24 Fix permission bug in close 2021-02-24 11:37:52 -09:00
Dustin Pianalto 0041bd4c67 Add view command and update utils 2021-02-24 00:03:12 -09:00
Dustin Pianalto 7b1db25ccb Add view command and update utils 2021-02-23 23:53:28 -09:00
Dustin Pianalto 4e5a3ee1a8 Add view command and update utils 2021-02-23 23:42:02 -09:00
Dustin Pianalto 270319c615 Add view command and update utils 2021-02-23 23:29:19 -09:00
Dustin Pianalto d80fe268d7 Add comment command 2021-02-23 21:56:10 -09:00
Dustin Pianalto 01573b1dff Fix bug when updating request 2021-02-23 17:28:51 -09:00
Dustin Pianalto 530c5f489c Fix bug with query 2021-02-23 00:38:20 -09:00
Dustin Pianalto 70d5d4ef10 Move migrations to separate func 2021-02-22 23:59:13 -09:00
Dustin Pianalto 4f8dfd0499 Add ftp credentials to domain types 2021-02-22 23:24:19 -09:00
Dustin Pianalto 8c281fe9ce Add ftp credentials to db schema 2021-02-22 23:10:57 -09:00
Dustin Pianalto 642163896f Fix request message 2021-02-22 22:19:25 -09:00
Dustin Pianalto db403d5f01 Fix request message 2021-02-22 22:18:59 -09:00
Dustin Pianalto eb5b128cde Fix request message 2021-02-22 22:17:18 -09:00
Dustin Pianalto 5738d9e27f Fix bug getting messages from db 2021-02-22 22:12:07 -09:00
Dustin Pianalto d87c64df03 Add message to end of list with count 2021-02-22 22:03:06 -09:00
Dustin Pianalto 8edc6fd318 Update database schema to not allow null previous_content 2021-02-22 21:56:18 -09:00
Dustin Pianalto d50e415bf3 Update database schema to not allow null previous_content 2021-02-22 21:29:41 -09:00
Dustin Pianalto f46036c3c0 Update database schema to not allow null previous_content 2021-02-22 21:24:55 -09:00
Dustin Pianalto 2497b04be1 Update database schema to not allow null previous_content 2021-02-22 21:16:28 -09:00
Dustin Pianalto 1ade3850a4 Fix broken SQL query 2021-02-22 20:13:29 -09:00
Dustin Pianalto 485ee3f635 Add close and list commands 2021-02-22 19:59:39 -09:00
Dustin Pianalto b85bd69368 update actions 2021-02-22 19:51:04 -09:00
Dustin Pianalto 12901509a0 Add request close and list commands 2021-02-22 19:37:38 -09:00
Dustin Pianalto c0187d2671 Merge branch 'development' of github.com:dustinpianalto/Geeksbot into development 2021-02-22 14:05:09 -09:00
Dustin Pianalto bc03e1bd91 Move db and services to pkg 2021-02-22 14:04:51 -09:00
Dustin Pianalto cc298b4d86 start close command 2021-02-07 11:27:33 -09:00
Dustin Pianalto 3ccf7684f3 Add sar commands 2021-01-30 22:52:25 -09:00
Dustin Pianalto 827e9c7b65 Add sar commands 2021-01-30 22:42:14 -09:00
Dustin Pianalto f449101d49 Add sar commands 2021-01-30 22:31:22 -09:00
Dustin Pianalto f62de5ae83 Add sar commands 2021-01-30 22:17:01 -09:00
Dustin Pianalto e09824dbd3 remove mod/admin role command 2021-01-26 00:08:20 -09:00
Dustin Pianalto 25026d7010 remove mod/admin role command 2021-01-25 23:53:32 -09:00
Dustin Pianalto 776b3638d9 remove mod/admin role command 2021-01-25 23:49:58 -09:00
Dustin Pianalto 70baa24953 fix role commands 2021-01-25 23:09:21 -09:00
Dustin Pianalto b60135b6f8 fix role commands 2021-01-25 23:04:43 -09:00
Dustin Pianalto 3b338f0f53 fix role commands 2021-01-25 23:01:02 -09:00
Dustin Pianalto dc20dcf959 add admin role command 2021-01-25 22:41:51 -09:00
Dustin Pianalto c62f0f2f47 add moderator role command 2021-01-25 22:21:56 -09:00
Dustin Pianalto 21a7515797 add moderator role command 2021-01-25 21:52:12 -09:00
Dustin Pianalto cab3b15993 fix create request command 2021-01-25 02:31:36 -09:00
Dustin Pianalto 060b98f456 fix create request command 2021-01-25 02:27:56 -09:00
Dustin Pianalto c717d96c3d fix create request sql query 2021-01-25 02:20:11 -09:00
Dustin Pianalto f922a81fb1 fix create channel sql query 2021-01-25 02:11:28 -09:00
Dustin Pianalto 5d48fddaae fix create channel sql query 2021-01-25 02:05:13 -09:00
Dustin Pianalto dfe645d023 fix create channel sql query 2021-01-25 01:59:57 -09:00
Dustin Pianalto 19425cc03a fix get user sql query 2021-01-25 01:52:14 -09:00
Dustin Pianalto 2cb24b0d01 fix get user sql query 2021-01-25 01:43:31 -09:00
Dustin Pianalto 62bd23399c fix get user sql query 2021-01-25 01:38:22 -09:00
Dustin Pianalto 0e280ed843 add request command 2021-01-25 01:33:46 -09:00
Dustin Pianalto 588117e0d0 add request command 2021-01-25 01:21:49 -09:00
Dustin Pianalto 22fd99c673 add request command 2021-01-24 22:57:55 -09:00
Dustin Pianalto 715af8c1bc use custom prefixes 2021-01-24 01:11:22 -09:00
Dustin Pianalto ff5cfb5f3b remove duplicate prefixes 2021-01-24 01:05:16 -09:00
Dustin Pianalto ec1be803c8 debug removing prefix 2021-01-24 00:57:00 -09:00
Dustin Pianalto 3d835ab5f4 debug removing prefix 2021-01-24 00:53:04 -09:00
Dustin Pianalto 6e83bc6bd9 Fix array in guild service 2021-01-24 00:46:41 -09:00
Dustin Pianalto f60de139c0 Add prefix commands 2021-01-24 00:40:02 -09:00
Dustin Pianalto a8ee028292 Add prefix commands 2021-01-24 00:26:34 -09:00
Dustin Pianalto 081b21d58c Add prefix commands 2021-01-24 00:24:07 -09:00
Dustin Pianalto 454cced2a7 Fix nullability of columns 2021-01-23 20:10:48 -09:00
Dustin Pianalto 106333c26b use nullable string in user 2021-01-23 16:05:02 -09:00
Dustin Pianalto 6df9d6366f fix bug in user database 2021-01-23 15:10:04 -09:00
Dustin Pianalto 5940bc8e22 fix bug in user service 2021-01-23 15:03:15 -09:00
Dustin Pianalto c01562cec5 fix bug in user service 2021-01-23 14:59:35 -09:00
Dustin Pianalto 70c1d2d35b fix bug in user service 2021-01-23 14:48:59 -09:00
Dustin Pianalto 121a21e1c6 fix bug in user service 2021-01-23 14:46:25 -09:00
Dustin Pianalto f85c475cfd fix bug in running migrations 2021-01-23 04:27:34 -09:00
Dustin Pianalto a8ea92c140 change test command name 2021-01-23 04:20:17 -09:00
Dustin Pianalto 84311836f2 fix sql typo 2021-01-23 04:14:29 -09:00
Dustin Pianalto 28691e72fb rework services and add test command 2021-01-23 03:53:34 -09:00
Dustin Pianalto ccfecd0965 Initialize services 2021-01-23 03:11:12 -09:00
Dustin Pianalto e2f97afa6d initial database crud 2021-01-23 01:25:06 -09:00
Dustin Pianalto 4188343429 debug errors 2021-01-21 00:19:52 -09:00
Dustin Pianalto b8c9e8fd39 debug errors 2021-01-20 23:58:25 -09:00
Dustin Pianalto fec57e421f debug errors 2021-01-20 23:28:15 -09:00
Dustin Pianalto 6a4d326e57 debug errors 2021-01-20 23:22:23 -09:00
Dustin Pianalto 532be87f30 Fix syntax errors 2021-01-20 23:18:30 -09:00
Dustin Pianalto 7596d96a24 Test adding migration files to container 2021-01-20 23:04:17 -09:00
Dustin Pianalto ace7d8ac54 Test adding migration files to container 2021-01-20 23:04:14 -09:00
Dustin Pianalto be3fa68eca Test adding migration files to container 2021-01-20 22:44:17 -09:00
Dustin Pianalto 85e498d353 Test adding migration files to container 2021-01-20 22:40:15 -09:00
Dustin Pianalto e0491b63b3 Check error when running migrations 2021-01-20 22:37:04 -09:00
Dustin Pianalto f7f0f5fc8c Check error when running migrations 2021-01-20 22:21:01 -09:00
Dustin Pianalto 4ad96efc13 Fix typo in workflow 2021-01-20 22:13:59 -09:00
Dustin Pianalto 3a8dec15fa Fix typo in workflow 2021-01-20 22:11:22 -09:00
Dustin Pianalto 4cf439a826 Fix typo in workflow 2021-01-20 22:10:39 -09:00
Dustin Pianalto ba0b7235e2 Fix typo in workflow 2021-01-20 22:08:22 -09:00
Dustin Pianalto 248a566fea Fix typo in workflow 2021-01-20 21:59:24 -09:00
Dustin Pianalto 0cd69aa6b3 Fix typo in workflow 2021-01-20 21:53:56 -09:00
Dustin Pianalto 38d0f69f9f Fix typo in workflow 2021-01-20 21:50:13 -09:00
Dustin Pianalto 9c511db33e Fix typo in workflow 2021-01-20 21:40:29 -09:00
Dustin Pianalto 1306ba6fde Fix typo in workflow 2021-01-20 21:37:58 -09:00
Dustin Pianalto eedf34022e Fix typo in workflow 2021-01-20 21:36:43 -09:00
Dustin Pianalto fe4dca9307 Fix typo in workflow 2021-01-20 21:28:55 -09:00
Dustin Pianalto 1cc9437300 Fix typo in workflow 2021-01-20 21:10:06 -09:00
Dustin Pianalto f1df8472ef Connect to db in main 2021-01-20 21:07:23 -09:00
Dustin Pianalto df8f8f2fa6 Add basic database setup 2021-01-20 21:06:01 -09:00
Dustin Pianalto cfe683c53c Add domain types 2021-01-20 17:39:18 -09:00
Dustin Pianalto b611dd7c87 Change token env variable 2021-01-19 01:56:56 -09:00
Dustin Pianalto 426b4c99b7 change deployment name 2021-01-19 01:50:40 -09:00
Dustin Pianalto c77ae4cfac Add missing deps 2021-01-19 01:02:46 -09:00
Dustin Pianalto 30ea8d8c8d Add missing deps 2021-01-19 00:59:58 -09:00
Dustin Pianalto 4a88008b8d Remove missing deps 2021-01-19 00:56:21 -09:00
Dustin Pianalto 75697c44dc Basic bot and kubernetes deployment 2021-01-19 00:51:30 -09:00
Dustin Pianalto e840f6b651 Initial structure 2020-12-17 16:43:34 -09:00
Dusty.P df14091e04 Update and rename README.md to README 2020-12-15 23:00:56 -09:00
Dusty.P 9c18544dde Create LICENSE 2020-12-15 23:00:28 -09:00
7 changed files with 92 additions and 11 deletions
+5
View File
@@ -0,0 +1,5 @@
# Service release contract
Butler resolves this repository's protected source revision to verified immutable images. The platform updates only image references in the existing production Compose file and restarts only the already running application services. It preserves current environment, storage, routes, and provider configuration. It retains previous application images and restores them if readiness fails.
Migration and maintenance images are pinned when declared, but this release operation does not run database migrations or maintenance jobs. A release requiring a schema change needs the corresponding explicit platform migration first. No homelab image-pin commit is required for an ordinary compatible application release.
+12
View File
@@ -0,0 +1,12 @@
{
"version": 1,
"deployment": "geeksbot-release",
"environment": "production",
"images": {
"geeksbot_release_geeksbot_image": {
"name": "geeksbot",
"tag": "sha-{revision}"
}
},
"revision_variable": "geeksbot_release_revision"
}
+31 -8
View File
@@ -3,15 +3,22 @@ name: Build and Push Container
on:
push:
branches:
- master
- main
- master
tags:
- v*
workflow_dispatch:
- v*
workflow_dispatch: null
pull_request:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number
|| github.run_id }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
build-and-push:
runs-on: ubuntu-latest
runs-on: butler-ci
env:
REGISTRY: gitea.wayfinderak.com
IMAGE_NAME: gitea.wayfinderak.com/wayfinderak/geeksbot
@@ -19,9 +26,20 @@ jobs:
options: --dns 172.16.30.10
steps:
- name: Checkout
uses: actions/checkout@v4
uses: https://github.com/actions/checkout@v4
- name: Select relevant delivery work
id: delivery
env:
DELIVERY_EVENT: ${{ github.event_name }}
DELIVERY_REF: ${{ github.ref }}
DELIVERY_SHA: ${{ github.sha }}
DELIVERY_BASE: ${{ github.event.pull_request.base.sha || github.event.before }}
run: |
cd .
bash scripts/ci-select.sh
- name: Install Go and Docker CLI if needed
if: ${{ steps.delivery.outputs.run == 'true' }}
shell: bash
run: |
set -euo pipefail
@@ -62,9 +80,11 @@ jobs:
docker version
- name: Run tests
if: ${{ steps.delivery.outputs.run == 'true' }}
run: go test ./...
- name: Log in to Gitea Container Registry
if: ${{ (steps.delivery.outputs.run == 'true') && github.event_name != 'pull_request' }}
shell: bash
run: |
set -euo pipefail
@@ -79,6 +99,7 @@ jobs:
exit 1
- name: Determine image tags
if: ${{ steps.delivery.outputs.run == 'true' }}
id: meta
shell: bash
env:
@@ -87,7 +108,7 @@ jobs:
SHA: ${{ gitea.sha }}
run: |
set -euo pipefail
tags=()
tags=("$IMAGE_NAME:sha-$SHA")
if [[ "$REF" == refs/tags/* ]]; then
version="$REF_NAME"
@@ -109,6 +130,7 @@ jobs:
printf 'EOF\n' >> "$GITHUB_OUTPUT"
- name: Build image
if: ${{ steps.delivery.outputs.run == 'true' }}
shell: bash
run: |
set -euo pipefail
@@ -121,9 +143,10 @@ jobs:
build_args+=(--tag "$tag")
done
docker build "${build_args[@]}" .
docker build --label "org.opencontainers.image.revision=$GITHUB_SHA" "${build_args[@]}" .
- name: Push image
if: ${{ (steps.delivery.outputs.run == 'true') && github.event_name != 'pull_request' }}
shell: bash
run: |
set -euo pipefail
+2
View File
@@ -1,2 +1,4 @@
.env
.idea
portainer-app.env
-3
View File
@@ -1,3 +0,0 @@
DATABASE_URL=postgresql://geeksbot:kW6JzIQhBi4r7rRcKi3l2ct4@10.0.0.202:5432/geeksbot
DISCORD_TOKEN=Mzk2NTg4OTk2NzA2MzA0MDEw.GybJWT.KYhcnh1Zn72splQaEW92A4GmM13Au9d40t4qtI
STEAM_API_KEY=A8309D7186F7E523E83972CA0A92C486
+3
View File
@@ -0,0 +1,3 @@
DATABASE_URL=postgresql://USER:PASSWORD@HOST:5432/geeksbot?sslmode=disable
DISCORD_TOKEN=replace-me
STEAM_API_KEY=replace-me
+39
View File
@@ -0,0 +1,39 @@
#!/usr/bin/env bash
# Keep required jobs alive; only skip reviewed non-runtime documentation paths.
set -euo pipefail
base="${DELIVERY_BASE:-}"
head="$(git rev-parse HEAD)"
run=true
if [[ "${DELIVERY_REF:-}" != refs/tags/* && "$head" == "${DELIVERY_SHA:-}" && "${DELIVERY_EVENT:-}" =~ ^(push|pull_request)$ && "$base" =~ ^[0-9a-f]{40}$ && "$base" != 0000000000000000000000000000000000000000 ]]; then
if ! git cat-file -e "$base^{commit}" 2>/dev/null; then
if [[ -n "${DELIVERY_FETCH_TOKEN:-}" ]]; then
git -c "http.extraHeader=Authorization: token ${DELIVERY_FETCH_TOKEN}" fetch --quiet --depth=1 origin "$base" >/dev/null 2>&1 || true
else
git fetch --quiet --depth=1 origin "$base" >/dev/null 2>&1 || true
fi
fi
if git cat-file -e "$base^{commit}" 2>/dev/null; then
paths="$(mktemp)"
trap 'rm -f -- "$paths"' EXIT
# Snapshot comparison is conservative when main advanced during a PR.
# Both rename sides remain visible, including names containing newlines.
if git diff --no-renames --name-only -z "$base" "$head" > "$paths"; then
run=false
while IFS= read -r -d '' path; do
case "$path" in
README.md|CHANGELOG.md|LICENSE|LICENSE.md) ;;
*) run=true; break ;;
esac
done < "$paths"
fi
fi
fi
if [[ "$run" == false ]]; then
echo 'Only reviewed non-runtime documentation changed; build and validation are not applicable.'
else
echo 'Runtime, unknown inputs, or unavailable event history: run required validation.'
fi
if [[ -n "${GITHUB_OUTPUT:-}" ]]; then
echo "run=$run" >> "$GITHUB_OUTPUT"
fi
printf '%s\n' "$run"