From 756925bd25602d5a75ef7aee1b75cc76eba3874f Mon Sep 17 00:00:00 2001 From: Schalli Date: Thu, 25 Jun 2026 10:58:50 +0200 Subject: [PATCH] feat(06-03): create Gitea Actions multi-stage CI/CD pipeline - Three chained jobs: quality (lint+type-check) -> test (vitest) -> build-deploy - Uses plain docker compose build/up (not build-push-action, avoids Pitfall 4) - Triggers on push to main branch only (D-11, D-12) - No hardcoded secrets in workflow (T-06-08) --- .gitea/workflows/ci.yml | 65 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 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..de07b11 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,65 @@ +name: Tessera CI/CD + +on: + push: + branches: [main] + +jobs: + quality: + name: Lint & Type Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + with: + version: 9 + + - uses: actions/setup-node@v4 + with: + node-version: 24 + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Lint + run: pnpm lint + + - name: Type check + run: pnpm type-check + + test: + name: Tests + runs-on: ubuntu-latest + needs: quality + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + with: + version: 9 + + - uses: actions/setup-node@v4 + with: + node-version: 24 + cache: pnpm + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Run tests + run: pnpm test + + build-deploy: + name: Build & Deploy + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v4 + + - name: Build Docker images + run: docker compose build web api + + - name: Deploy services + run: docker compose up -d web api