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"