Files
motovaultpro/.github/workflows/ci.yml
Eric Gullickson a052040e3a Initial Commit
2025-09-17 16:09:15 -05:00

66 lines
1.9 KiB
YAML

name: CI
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
build-and-test-backend:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build core services
run: |
docker compose -p ci build backend frontend mvp-platform-vehicles-api
- name: Start dependencies for tests
run: |
docker compose -p ci up -d postgres redis minio mvp-platform-vehicles-db mvp-platform-vehicles-redis mvp-platform-vehicles-api
# Wait for platform API health
for i in {1..30}; do
if docker compose -p ci ps --status=running | grep -q mvp-platform-vehicles-api; then
curl -sf http://localhost:8000/health && break
fi
sleep 2
done
- name: Build backend builder image (with dev deps)
run: |
docker build -t motovaultpro-backend-builder --target builder backend
- name: Lint backend
run: |
docker run --rm --network ci_default --env-file .env \
motovaultpro-backend-builder npm run lint
- name: Run backend tests
env:
CI: true
run: |
docker run --rm --network ci_default --env-file .env \
-e DB_HOST=postgres -e REDIS_HOST=redis -e MINIO_ENDPOINT=minio \
-e PLATFORM_VEHICLES_API_URL=http://mvp-platform-vehicles-api:8000 \
-e PLATFORM_VEHICLES_API_KEY=mvp-platform-vehicles-secret-key \
motovaultpro-backend-builder npm test -- --runInBand
build-frontend:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build frontend image
run: |
docker compose -p ci build frontend