Add Gitea Actions CI workflow
Runs on push/PR to codex/staging-baseline plus manual dispatch: sbt test for the backend, and npm ci/typecheck/build/audit (full + production-only) for the frontend, matching the checks already documented as the manual Rocky verification routine. Verified sbt test compiles and passes with no .env file present (matching what a checkout-only CI job will actually have) via a git-archive dry run before writing this. Two separate jobs, each with its own container image, rather than one shared runner-label image with ad-hoc installs — reuses the exact hseeberger/scala-sbt image already used all session for local backend builds, and a plain node:20-bookworm for the frontend, so nothing needs apt-get bootstrapping of a second language runtime into the same container.
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- codex/staging-baseline
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- codex/staging-baseline
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
backend:
|
||||||
|
runs-on: docker
|
||||||
|
container:
|
||||||
|
image: hseeberger/scala-sbt:17.0.2_1.6.2_2.13.8
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: sbt test
|
||||||
|
run: sbt -batch test
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
runs-on: docker
|
||||||
|
container:
|
||||||
|
image: node:20-bookworm
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: web
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: npm ci
|
||||||
|
run: npm ci
|
||||||
|
- name: typecheck
|
||||||
|
run: npm run typecheck
|
||||||
|
- name: build
|
||||||
|
run: npm run build
|
||||||
|
- name: audit (full)
|
||||||
|
run: npm audit
|
||||||
|
- name: audit (production only)
|
||||||
|
run: npm audit --omit=dev
|
||||||
Reference in New Issue
Block a user