familyfedie-website/.forgejo/workflows/deploy.yml
Loyyd 2c41a374ec
All checks were successful
/ deploy (push) Successful in 40s
Fix host runner deploy commands
2026-06-11 16:41:35 +02:00

53 lines
1.8 KiB
YAML

on:
push:
branches: [main]
workflow_dispatch:
concurrency:
group: deploy-main
cancel-in-progress: true
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Build Astro and restart Nomad
env:
NOMAD_ADDR: ${{ secrets.NOMAD_ADDR }}
NOMAD_TOKEN: ${{ secrets.NOMAD_TOKEN }}
REPO_URL: https://git.bcgen.ie/familyfedie/familyfedie-website.git
run: |
set -eu
rm -rf source
export REF_NAME="${GITHUB_REF_NAME:-main}"
nix --extra-experimental-features "nix-command flakes" \
shell nixpkgs#git \
-c git clone --depth 1 --branch "$REF_NAME" "$REPO_URL" source
cd source
nix --extra-experimental-features "nix-command flakes" \
shell nixpkgs#nodejs_24 \
-c npm ci
rm -rf dist
nix --extra-experimental-features "nix-command flakes" \
shell nixpkgs#nodejs_24 \
-c npm run build
test -f dist/index.html
test -f dist/speeches/index.html
test -f dist/assets/icons/familyfed-favicon.png
ALLOC_ID=$(nix --extra-experimental-features "nix-command flakes" \
shell nixpkgs#curl nixpkgs#jq \
-c sh -c 'curl -sf -H "X-Nomad-Token: $NOMAD_TOKEN" "$NOMAD_ADDR/v1/job/familyfed/allocations" | jq -r "map(select(.ClientStatus == \"running\"))[0].ID"')
test -n "$ALLOC_ID"
test "$ALLOC_ID" != "null"
echo "Stopping allocation to trigger fresh prestart: $ALLOC_ID"
nix --extra-experimental-features "nix-command flakes" \
shell nixpkgs#curl \
-c curl -sf -X POST \
-H "X-Nomad-Token: $NOMAD_TOKEN" \
"$NOMAD_ADDR/v1/allocation/$ALLOC_ID/stop"
echo "Deploy triggered. Nomad will schedule a new alloc that re-fetches the site."