Files
vu/.gitea/workflows/deploy.yml
T
will 2d442f9958
Deploy / deploy (push) Failing after 38s
CI: bump deploy workflow's Node to 26, matching jsdom 30's engine requirement
jsdom 30 dropped support for Node 20 (needs ^22.22.2 || ^24.15.0 || >=26.0.0).
The CI workflow was still pinned to Node 20 from before that dependency bump,
so `npm test` failed in every run since — tests passed locally (on Node 26)
but the pipeline never got past the Test step, so neither of the last two
pushes actually deployed. The Dockerfile's own build stage doesn't need the
same bump: it only runs `npm run build` (tsc + vite), which doesn't touch
jsdom.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-09 20:14:32 -04:00

48 lines
1.4 KiB
YAML

name: Deploy
on:
push:
branches: [master]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "26"
- name: Install
run: npm ci
- name: Build
run: npm run build
- name: Test
run: npm test
- name: Build and smoke-test the container
# vu has no server-side logic, so there's nothing an integration
# test would exercise beyond "does the built bundle actually get
# served correctly under the /vu/ base path" — this is that check,
# run against the exact image that ships.
run: |
docker build -t vu:ci .
docker run -d --name vu-smoke -p 8080:80 vu:ci
sleep 1
curl -sf http://localhost:8080/ | grep -q 'vu — Divine Office'
docker stop vu-smoke
- name: Trigger redeploy via SSH
run: |
mkdir -p ~/.ssh
printf '%s\n' "$VU_DEPLOY_SSH_KEY" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
# Forced-command key, same pattern as eec/bookshop/drip: the
# server-side sudoers grant runs the vu redeploy script regardless
# of what's requested here — see the vu Ansible role.
ssh -i ~/.ssh/deploy_key -o StrictHostKeyChecking=accept-new vu-deploy@reground.org true
env:
VU_DEPLOY_SSH_KEY: ${{ secrets.VU_DEPLOY_SSH_KEY }}