Skip to content

Refactor Nexus component and its subcomponents #12

Refactor Nexus component and its subcomponents

Refactor Nexus component and its subcomponents #12

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
test-backend:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.9, '3.10', 3.11]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache Python dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/backend/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install backend dependencies
run: |
python -m pip install --upgrade pip
pip install -r backend/requirements.txt
pip install pytest pytest-asyncio
- name: Lint backend code
run: |
pip install flake8
flake8 backend/ --exclude=__pycache__,*.pyc --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 backend/ --exclude=__pycache__,*.pyc --count --max-complexity=10 --max-line-length=127 --statistics
- name: Test backend (basic import)
run: |
python -c "import sys; sys.path.append('./backend'); import app; import agent"
test-frontend:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
steps:
- uses: actions/checkout@v4
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Cache Node.js dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/frontend/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install frontend dependencies
run: |
cd frontend
npm install
- name: Lint frontend code
run: |
cd frontend
npm run lint
- name: Build frontend
run: |
cd frontend
npm run build
security-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Security scan for Python dependencies
uses: pyupio/safety-action@v2
with:
requirements-file: backend/requirements.txt
- name: Secret scanning
uses: trufflesecurity/truffleHog@main
with:
path: ./
base: HEAD~1
deploy-dev:
needs: [test-backend, test-frontend, security-check]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
steps:
- uses: actions/checkout@v4
- name: Deploy to Development Environment
run: |
echo "Deploying to development environment..."
echo "Development deployment completed"
deploy-prod:
needs: [deploy-dev]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
steps:
- uses: actions/checkout@v4
- name: Manual Approval for Production
uses: trilom/file-changes-action@v1.2.4
with:
output: ''
- name: Deploy to Production Environment
run: |
echo "Deploying to production environment..."
echo "Production deployment completed"