Files
Bendik Aagaard LynghaugandClaude Fable 5 6c5b9a55b7
Deploy instance / deploy (push) Successful in 1s
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 1s
Own the redoal-portal instance: deploy pinned portal releases from here
Same instance-ownership move as uhhm/questions: pin PORTAL_RELEASE,
ship /srv/app/redoal-portal from the published artifact, write env from
this repo's own Actions config, own the redoal.com Caddy route. Lint
now uses this instance's question_lint, matching the pinned version.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 21:26:26 +02:00

37 lines
1.3 KiB
YAML

name: Lint and reload
# Lint runs on PRs too - it's the status check branch protection
# requires before the development-commit automation's PRs may merge
# (merge_when_checks_succeed). The reload only ever fires on a push
# that actually landed on main.
on:
push:
branches: [main]
pull_request:
jobs:
lint:
runs-on: bare
steps:
- uses: actions/checkout@v4
# Same bare-metal runner/host as this repo's own Deploy workflow,
# which ships question_lint alongside the portal binary in every
# pinned release - so content is validated by the exact portal
# version this instance runs, not a hand-maintained yq/jq subset
# of the same rules.
- name: Lint questions
run: /srv/app/redoal-portal/current/question_lint --path questions
reload:
runs-on: bare
needs: lint
if: github.event_name == 'push'
steps:
# Tells every running portal instance to re-fetch and atomically
# swap in the new content - see content::watch_for_reload in the
# portal repo. Fire and forget: no reply expected, no payload
# needed (the subject alone is the whole message).
- name: Tell portal to reload content
run: nats pub portal.content.reload '' --server "nats://infra:${{ secrets.NATS_TOKEN }}@127.0.0.1:4222"