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/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"