UNPKG

aios-core

Version:

Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework

173 lines (148 loc) 4.49 kB
# GitHub Actions CI Template # Purpose: Continuous Integration workflow for testing and validation # Generated by: AIOS-FullStack @github-devops agent # # Usage: Copy to .github/workflows/ci.yml and customize name: CI on: push: branches: [main, develop] pull_request: branches: [main, develop] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: NODE_VERSION: '20.x' # Add other environment variables here # DATABASE_URL: ${{ secrets.DATABASE_URL }} jobs: # ============================================================================ # LINT & TYPE CHECK # ============================================================================ lint: name: Lint & Type Check runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' - name: Install dependencies run: npm ci - name: Run linting run: npm run lint - name: Run type check run: npm run typecheck continue-on-error: false # ============================================================================ # UNIT TESTS # ============================================================================ test: name: Unit Tests runs-on: ubuntu-latest needs: lint steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' - name: Install dependencies run: npm ci - name: Run tests run: npm test env: CI: true - name: Upload coverage report uses: codecov/codecov-action@v4 if: always() with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false # ============================================================================ # BUILD # ============================================================================ build: name: Build runs-on: ubuntu-latest needs: [lint, test] steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' - name: Install dependencies run: npm ci - name: Build project run: npm run build - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: build path: dist/ retention-days: 7 # ============================================================================ # SECURITY AUDIT # ============================================================================ security: name: Security Audit runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' - name: Install dependencies run: npm ci - name: Run security audit run: npm audit --audit-level=high continue-on-error: true # ============================================================================ # INTEGRATION TESTS (Optional) # ============================================================================ # integration: # name: Integration Tests # runs-on: ubuntu-latest # needs: build # services: # postgres: # image: postgres:15 # env: # POSTGRES_PASSWORD: postgres # POSTGRES_DB: test # ports: # - 5432:5432 # options: >- # --health-cmd pg_isready # --health-interval 10s # --health-timeout 5s # --health-retries 5 # steps: # - name: Checkout code # uses: actions/checkout@v4 # # - name: Setup Node.js # uses: actions/setup-node@v4 # with: # node-version: ${{ env.NODE_VERSION }} # cache: 'npm' # # - name: Install dependencies # run: npm ci # # - name: Run integration tests # run: npm run test:integration # env: # DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test