Files
asle/.github/workflows/ci.yml
defiQUG a40cfb4204 Update CI workflow and README for submodule support
- Update CI workflow to checkout submodules recursively
- Update README with submodule cloning instructions
- Add project structure notes about submodules
- Create comprehensive review summary document
2025-12-03 21:39:51 -08:00

125 lines
2.8 KiB
YAML

name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
contracts:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./contracts
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Install dependencies
run: |
forge install
- name: Build contracts
run: forge build
- name: Run tests
run: forge test
backend:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./backend
services:
postgres:
image: postgres:15-alpine
env:
POSTGRES_USER: asle
POSTGRES_PASSWORD: asle_password
POSTGRES_DB: asle_test
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: ./backend/package-lock.json
- name: Install dependencies
run: npm ci
- name: Generate Prisma Client
run: npx prisma generate
- name: Run migrations
run: npx prisma migrate deploy
env:
DATABASE_URL: postgresql://asle:asle_password@localhost:5432/asle_test?schema=public
- name: Run linter
run: npm run lint || true
- name: Run tests
run: npm test || true
env:
DATABASE_URL: postgresql://asle:asle_password@localhost:5432/asle_test?schema=public
frontend:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./frontend
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: ./frontend/package-lock.json
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint || true
- name: Type check
run: npm run type-check || true
- name: Build
run: npm run build
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Run security audit
run: |
cd contracts && npm audit --production || true
cd ../backend && npm audit --production || true
cd ../frontend && npm audit --production || true