# CI/CD Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Add Gitea Actions CI pipeline with lint, test, and build for the MoexVibe monorepo. **Architecture:** Single `.gitea/workflows/ci.yml` file with three parallel jobs (lint, test, build) triggered on push/PR to main. One script addition to root `package.json` for format checking. **Tech Stack:** Gitea Actions (GitHub Actions-compatible YAML), Node.js 20, npm workspaces --- ### Task 1: Add `format:check` script to root package.json **Files:** - Modify: `package.json` (root) - [ ] **Step 1: Read root package.json** - [ ] **Step 2: Add format:check script** Edit `package.json`: add `"format:check": "prettier --check \"**/*.{ts,tsx}\""` to the `scripts` section, after `format`. - [ ] **Step 3: Verify the script runs** Run: `npm run format:check` Expected: exits 0 (all files already formatted) or lists formatting errors - [ ] **Step 4: Commit** ```bash git add package.json git commit -m "ci: add format:check script for CI pipeline" ``` --- ### Task 2: Create Gitea Actions workflow **Files:** - Create: `.gitea/workflows/ci.yml` - [ ] **Step 1: Create workflow directory** Run: `mkdir -p .gitea/workflows` - [ ] **Step 2: Create ci.yml with full pipeline** Create `.gitea/workflows/ci.yml`: ```yaml name: CI on: push: branches: [main] pull_request: branches: [main] env: NODE_VERSION: 20 jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: npm - run: npm ci - run: npm run lint - run: npx prettier --check "**/*.{ts,tsx}" test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: npm - run: npm ci - run: npm run test:backend build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: npm - run: npm ci - run: npm run build:backend - run: npm run build:frontend ``` - [ ] **Step 3: Commit** ```bash git add .gitea/workflows/ci.yml git commit -m "ci: add Gitea Actions pipeline with lint, test, build" ``` --- ### Verification После пуша в `main` (или создания PR) проверить на https://git.ksv741.keenetic.pro/moex/moex-vibe/actions что pipeline запустился и все 3 job'а зелёные.