Skip to content

demo script fix

demo script fix #22

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
env:
PYTHON_VERSION: "3.11"
NODE_VERSION: "20"
jobs:
# ============================================
# Backend Tests
# ============================================
backend-test:
name: Backend Tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: ai_governance_test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
working-directory: ./AIGovHub/backend
run: |
pip install fastapi uvicorn sqlmodel psycopg2-binary alembic pydantic python-multipart
pip install python-jose passlib reportlab
pip install pytest httpx
- name: Run tests
working-directory: ./AIGovHub/backend
env:
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/ai_governance_test
run: pytest tests/ -v --tb=short || echo "Tests completed"
# ============================================
# Frontend Tests
# ============================================
frontend-test:
name: Frontend Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
cache-dependency-path: AIGovHub/frontend/package-lock.json
- name: Install dependencies
working-directory: ./AIGovHub/frontend
run: npm ci
- name: Run linting
working-directory: ./AIGovHub/frontend
run: npm run lint || true
- name: Build
working-directory: ./AIGovHub/frontend
run: npm run build
# ============================================
# Docker Build
# ============================================
docker-build:
name: Docker Build
runs-on: ubuntu-latest
needs: [backend-test, frontend-test]
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build backend image
uses: docker/build-push-action@v5
with:
context: ./AIGovHub/backend
push: false
tags: ai-governance-hub-backend:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build frontend image
uses: docker/build-push-action@v5
with:
context: ./AIGovHub/frontend
push: false
tags: ai-governance-hub-frontend:latest
cache-from: type=gha
cache-to: type=gha,mode=max
# ============================================
# Deploy to Dev
# ============================================
deploy-dev:
name: Deploy to Dev
runs-on: ubuntu-latest
needs: [docker-build]
if: github.ref == 'refs/heads/develop' && github.event_name == 'push'
environment: development
steps:
- uses: actions/checkout@v4
- name: Deploy setup
run: echo "Configuring dev deployment..."
- name: Trigger Dev Deployment
run: |
echo "🚀 Deploying to Development Environment (Placeholder)"
# Add actual deployment commands here (e.g. kubectl apply, aws ecs update)
# ============================================
# Deploy to Staging
# ============================================
deploy:
name: Deploy to Staging
runs-on: ubuntu-latest
needs: [docker-build]
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
environment: staging
steps:
- uses: actions/checkout@v4
- name: Deploy notification
run: |
echo "🚀 Ready to deploy to staging!"
echo "Add your deployment steps here (AWS ECS, GCP Cloud Run, etc.)"