bytelyst-devops-tools/dashboard/.gitea/workflows/ci.yml
root fbaaa71a66 feat(devops): adopt trading web deployment model with docker-compose
- Add docker-compose.yml following trading web pattern
- Update web Dockerfile to use multi-stage build with metadata
- Add build metadata (commit SHA, branch, timestamp, author, message)
- Rewrite deploy.sh to use docker compose with build metadata
- Add hotcopy deployment script for quick updates
- Add comprehensive backend API with deployment orchestration
- Add health checks, service management, and monitoring endpoints
- Add CI/CD workflow configuration
- Add deployment documentation and guides

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-11 03:24:11 +00:00

112 lines
2.9 KiB
YAML

name: CI — DevOps Dashboard
on:
push:
branches: [main]
paths:
- 'backend/**'
- 'web/**'
- 'shared/**'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
- '.pnpmfile.cjs'
concurrency:
group: ci-devops-dashboard-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-test:
name: Build, Test & Typecheck
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Pull latest
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
git fetch origin main
git checkout main
git reset --hard origin/main
- name: Secret scan
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm secret-scan
- name: Install dependencies
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm install:common-plat
- name: Build backend
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm --filter backend build
- name: Build web
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm --filter web build
- name: Typecheck backend
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm --filter backend typecheck
- name: Typecheck web
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm --filter web typecheck
- name: Test backend
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm --filter backend test:run
- name: Test web
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm --filter web test:run
- name: Lint
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm --filter backend lint
pnpm --filter web lint
- name: E2E tests
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
pnpm --filter web test:e2e
docker-build:
name: Build Docker Images
runs-on: ubuntu-latest
needs: [build-and-test]
timeout-minutes: 20
steps:
- name: Pull latest
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
git fetch origin main
git checkout main
git reset --hard origin/main
- name: Build backend Docker image
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
docker build -f backend/Dockerfile -t devops-backend:latest .
- name: Build web Docker image
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
docker build -f web/Dockerfile -t devops-web:latest .
- name: Test Docker Compose
run: |
cd /opt/bytelyst/bytelyst-devops-tools/dashboard
docker compose up -d
sleep 10
docker compose down