feat(ci): add woodpecker deploy pipeline
ci/woodpecker/push/woodpecker Pipeline failed
Lint and Build Checks / Lint, Test, and Build (push) Failing after 393h18m24s

This commit is contained in:
2026-06-23 10:19:05 -05:00
parent f531e1bf15
commit ab0383aaf3
7 changed files with 131 additions and 6 deletions
+2 -2
View File
@@ -1,2 +1,2 @@
VITE_LAST_BUILD_DATE=20260616
VITE_LAST_SUCCESSFUL_COMMIT=13aa686
VITE_LAST_BUILD_DATE=20260623
VITE_LAST_SUCCESSFUL_COMMIT=f531e1b
+65
View File
@@ -0,0 +1,65 @@
when:
- event: push
branch: main
- event: manual
steps:
notify-start:
image: python:3.12-alpine
environment:
DEPLOY_TARGET_URL: http://bone-kingdom.tabitha.tealthrone/
DISCORD_DEPLOY_WEBHOOK_URL:
from_secret: discord_deploy_webhook_url
commands:
- apk add --no-cache curl
- sh scripts/woodpecker/notify-discord.sh started "Bone Kingdom Deploy Started" 5793266
validate:
image: node:24-bookworm
commands:
- npm ci
- npm run lint
- npm run test -- --runInBand
- npm run web:build
deploy:
image: alpine:3.20
environment:
DEPLOY_TARGET_URL: http://bone-kingdom.tabitha.tealthrone/
volumes:
- /Users/Tabitha/.openclaw/workspace_father/blb-throne-of-the-bone-king/dist/renderer:/deploy-target
commands:
- apk add --no-cache curl rsync
- test -d dist/renderer
- mkdir -p /deploy-target
- rsync -a --delete dist/renderer/ /deploy-target/
- curl -fsS "$DEPLOY_TARGET_URL" >/tmp/bone-kingdom-index.html
- grep -q '<div id="root">' /tmp/bone-kingdom-index.html
depends_on:
- validate
notify-success:
image: python:3.12-alpine
environment:
DEPLOY_TARGET_URL: http://bone-kingdom.tabitha.tealthrone/
DISCORD_DEPLOY_WEBHOOK_URL:
from_secret: discord_deploy_webhook_url
commands:
- apk add --no-cache curl
- sh scripts/woodpecker/notify-discord.sh succeeded "Bone Kingdom Deploy Succeeded" 5763719
depends_on:
- deploy
when:
status: [success]
notify-failure:
image: python:3.12-alpine
environment:
DEPLOY_TARGET_URL: http://bone-kingdom.tabitha.tealthrone/
DISCORD_DEPLOY_WEBHOOK_URL:
from_secret: discord_deploy_webhook_url
commands:
- apk add --no-cache curl
- sh scripts/woodpecker/notify-discord.sh failed "Bone Kingdom Deploy Failed" 15158332
when:
status: [failure]
+1 -1
View File
@@ -8,7 +8,7 @@ describe('changelog data', () => {
it('provides valid changelog entries', () => {
expect(isChangelogEntries(changelogEntries)).toBe(true);
expect(changelogEntries.length).toBeGreaterThan(0);
expect(changelogEntries[0]).toEqual(
expect(changelogEntries).toContainEqual(
expect.objectContaining({
id: 'build-metadata-changelog-poc',
title: 'Build Metadata and Changelog Scaffold',
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "BlbThroneOfTheBoneKing",
"version": "0.0.2",
"version": "0.0.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "BlbThroneOfTheBoneKing",
"version": "0.0.2",
"version": "0.0.3",
"dependencies": {
"@react-native-async-storage/async-storage": "^3.1.1",
"@react-native/new-app-screen": "0.85.3",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "BlbThroneOfTheBoneKing",
"version": "0.0.2",
"version": "0.0.3",
"private": true,
"main": "dist/electron/main.js",
"scripts": {
+48
View File
@@ -0,0 +1,48 @@
#!/bin/sh
set -eu
status="${1:-unknown}"
title="${2:-Bone Kingdom deploy update}"
color="${3:-5793266}"
target_url="${DEPLOY_TARGET_URL:-http://bone-kingdom.tabitha.tealthrone/}"
commit="${CI_COMMIT_SHA:-unknown}"
short_commit="$(printf '%s' "$commit" | cut -c 1-12)"
branch="${CI_COMMIT_BRANCH:-unknown}"
repo="${CI_REPO:-jacob-mathison/blb-throne-of-the-bone-king}"
build_url="${CI_PIPELINE_URL:-${CI_BUILD_LINK:-http://localhost:13580/}}"
if [ -z "${DISCORD_DEPLOY_WEBHOOK_URL:-}" ]; then
echo "DISCORD_DEPLOY_WEBHOOK_URL is not configured; skipping Discord notification."
exit 0
fi
python3 - "$status" "$title" "$color" "$target_url" "$repo" "$branch" "$short_commit" "$build_url" <<'PY' > /tmp/discord-payload.json
import json
import sys
status, title, color, target_url, repo, branch, short_commit, build_url = sys.argv[1:9]
payload = {
"content": f"Bone Kingdom deploy status: {status}",
"embeds": [
{
"title": title,
"url": target_url,
"color": int(color),
"fields": [
{"name": "Status", "value": status, "inline": True},
{"name": "Repo", "value": repo, "inline": True},
{"name": "Branch", "value": branch, "inline": True},
{"name": "Commit", "value": short_commit, "inline": True},
{"name": "Target", "value": target_url, "inline": False},
{"name": "Build", "value": build_url, "inline": False},
],
}
],
}
print(json.dumps(payload))
PY
curl -fsS \
-H "Content-Type: application/json" \
--data-binary @/tmp/discord-payload.json \
"$DISCORD_DEPLOY_WEBHOOK_URL"
+12
View File
@@ -1,4 +1,16 @@
[
{
"id": "woodpecker-deploy-pipeline",
"version": "0.0.2-20260623-f531e1b",
"createdAt": "2026-06-23",
"title": "Woodpecker Deploy Pipeline",
"summary": "Added a Woodpecker pipeline for validating, building, notifying, and deploying the hosted web app.",
"changes": [
"Added deploy lifecycle Discord notifications for start, success, and failure states.",
"Added Woodpecker validation for lint, tests, and the Vite web build.",
"Added a deployment step that syncs the built renderer bundle to the local nginx host."
]
},
{
"id": "build-metadata-changelog-poc",
"version": "0.0.1-20260616-13aa686",