2.8 KiB
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
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:
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
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'а зелёные.