From 5b88e69c4061d2c1ae17254caeb50e827842da39 Mon Sep 17 00:00:00 2001 From: b0txec Date: Mon, 24 Aug 2026 21:52:29 +0300 Subject: [PATCH] Add Gitea Actions CI workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .gitea/workflows/ci.yml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .gitea/workflows/ci.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..8bf60ae --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -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