Skip to content

harness: umask guard checks the property (other-read kept), not the v… #2718

harness: umask guard checks the property (other-read kept), not the v…

harness: umask guard checks the property (other-read kept), not the v… #2718

name: app build & lint
# STATBUS-219 Stage 2 (doc-030, architect comment #11): this workflow is an
# INDEPENDENT trigger — nothing chains off it — so a board-only push that
# matches push.paths-ignore below produces NO run at all, with no
# conclusion for anything downstream to misread. The resulting Missing at
# the tip is exactly what STATBUS-219 Stage 1's ancestor-ride in the
# release preflight was built and RED-verified to cover.
#
# paths-ignore IS A THIRD COPY of ops/release/ci-exempt-paths.txt's content
# — GitHub evaluates path filters server-side, before any job or checkout
# runs, so there is no way to read the checked-in list at trigger-filter
# time. KEPT IN SYNC BY HAND: this list, go-test.yaml's matching
# push.paths-ignore, and ci-exempt-paths.txt must all change together;
# ci-exempt-paths.txt's own header points back at both.
on:
workflow_dispatch:
push:
branches-ignore:
- 'ops/**' # Ignore any branch prefixed with ops/
paths-ignore:
- '.backlog/**'
pull_request:
branches-ignore:
- 'ops/**' # Ignore any branch prefixed with ops/
# STATBUS-364: one run in flight on master, newest push wins. PR runs keep
# per-ref groups (cancel superseded commits); non-PR push and manual dispatch
# share a FIXED group, so a newer push cancels the in-flight run and GitHub
# keeps at most one pending run.
concurrency:
group: ${{ github.event_name == 'pull_request' && format('app-build-lint-{0}', github.ref) || 'app-build-lint-master' }}
cancel-in-progress: true
jobs:
build-app:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Build app
run: |
docker build --target test -t statbus-app-test -f app/Dockerfile app
- name: Run App Tests
run: |
docker run --rm statbus-app-test