- 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>
112 lines
2.9 KiB
YAML
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
|