What shapes us? - redoal.com content: gesture hero, pseudo edition, releases
Lint and reload / lint (push) Successful in 3s
Lint and reload / reload (push) Failing after 0s

The 2024 lysbue question returns as live content: a gesture-drawing
hero and form (type: gesture, wired to wss://relay.redoal.com),
redoal/redoal's releases via the gitea_releases source (unlinked
while the repo is private), and a subscribe flow. site.yaml rebrands
the portal instance; buckets are redoal_-prefixed to coexist with
uhhm's on the shared JetStream.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bendik Aagaard Lynghaug
2026-08-23 13:06:10 +02:00
co-authored by Claude Fable 5
commit 35bcfc33ae
8 changed files with 240 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
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 portal's own deploy job, which
# publishes this binary to a stable path on every deploy - runs
# portal's real transition-table/shape validation directly, not a
# hand-maintained yq/jq subset of the same rules (lint.sh, now
# superseded and removed).
- name: Lint questions
run: /srv/app/uhhm-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"