- Report Issue button in portal header files a Forgejo issue (portal + claude-queue labels) - Windows scheduled watcher runs headless Claude Code on queued issues and opens a PR - .forgejo/workflows/deploy.yml deploys v* release tags via the pms1 host runner (pm2 restart ppms) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
42 lines
1.1 KiB
YAML
42 lines
1.1 KiB
YAML
name: Deploy release to production
|
|
|
|
# Pushing a release tag (vX.Y.Z) deploys that tag to the portal at
|
|
# pms.pelagiamarine.com. Runs on the pms1 host runner (label: host),
|
|
# which executes as shad0w with direct access to the pm2-managed app.
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: host
|
|
steps:
|
|
- name: Deploy tag to ~/pms and restart ppms
|
|
run: |
|
|
set -euo pipefail
|
|
export NVM_DIR="$HOME/.nvm"
|
|
. "$NVM_DIR/nvm.sh"
|
|
|
|
TAG="${GITHUB_REF_NAME}"
|
|
echo "=== Deploying $TAG ==="
|
|
|
|
cd "$HOME/pms"
|
|
git fetch origin --tags --force
|
|
git checkout -f "refs/tags/$TAG"
|
|
|
|
cd App
|
|
pnpm install --frozen-lockfile
|
|
pnpm build # includes prisma generate
|
|
pnpm db:migrate:deploy
|
|
|
|
pm2 restart ppms --update-env
|
|
echo "=== Deployed $TAG ==="
|
|
|
|
- name: Verify portal responds
|
|
run: |
|
|
sleep 5
|
|
code=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3000/login)
|
|
echo "Portal /login returned HTTP $code"
|
|
test "$code" = "200"
|