Files
start9.com/.github/workflows/deploy.yml
Matt Hill 303ba2ab22 fix deploy workflow: handle slinkity exit code bug
Slinkity exits with code 1 due to a known rename race condition, even
though the build output is generated correctly. Work around it by
verifying _site/index.html exists after the build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 09:17:56 -07:00

50 lines
1.1 KiB
YAML

name: Build and deploy website
on:
push:
branches: ["master"]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: "deploy"
cancel-in-progress: false
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install dependencies
run: npm ci
- name: Build site
run: |
npm run build || true
test -f _site/index.html
- name: Configure SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
ssh-keyscan -H start9.com >> ~/.ssh/known_hosts
cat >> ~/.ssh/config <<EOF
Host website-vps
HostName start9.com
User root
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
EOF
- name: Deploy to VPS
run: rsync -az --delete _site/ website-vps:/var/www/html/start9.com/