Skip to content

fix(hero): Remove SVG animate tags causing JSX parsing errors #17

fix(hero): Remove SVG animate tags causing JSX parsing errors

fix(hero): Remove SVG animate tags causing JSX parsing errors #17

Workflow file for this run

name: CI
on:
pull_request:
branches: [main, develop]
push:
branches: [main, develop]
# Cancel in-progress runs for same PR/branch
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run ESLint
run: npm run lint
- name: Run Prettier check
run: npx prettier --check "**/*.{ts,tsx,js,jsx,json,md}"
type-check:
name: Type Check
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run TypeScript compiler
run: npm run type-check
security:
name: Security Audit
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Run npm audit
run: npm audit --audit-level=high
continue-on-error: true
- name: Check for known vulnerabilities
run: npm audit --production --audit-level=critical
build:
name: Build
runs-on: ubuntu-latest
needs: [lint, type-check]
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build all packages
run: npm run build
env:
# Provide dummy env vars for build
NEXTAUTH_SECRET: build-secret
NEXTAUTH_URL: http://localhost:3000
- name: Check build artifacts
run: |
if [ -d "apps/web/.next" ]; then
echo "✅ Web app built successfully"
fi
if [ -d "apps/api/dist" ] || [ -f "apps/api/build/index.js" ]; then
echo "✅ API built successfully"
fi
test:
name: Test
runs-on: ubuntu-latest
needs: [lint, type-check]
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test || echo "No tests configured yet"
env:
NODE_ENV: test
docker-build:
name: Docker Build Test
runs-on: ubuntu-latest
needs: [build]
timeout-minutes: 20
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker images
run: |
docker-compose -f docker-compose.dev.yml build --parallel
env:
DOCKER_BUILDKIT: 1
- name: Test Docker Compose startup
run: |
docker-compose -f docker-compose.dev.yml up -d postgres redis
sleep 10
docker-compose -f docker-compose.dev.yml ps
docker-compose -f docker-compose.dev.yml down -v
all-checks-passed:
name: All Checks Passed
runs-on: ubuntu-latest
needs: [lint, type-check, security, build, test, docker-build]
if: always()
steps:
- name: Check all job statuses
run: |
if [[ "${{ needs.lint.result }}" != "success" ]]; then
echo "❌ Lint failed"
exit 1
fi
if [[ "${{ needs.type-check.result }}" != "success" ]]; then
echo "❌ Type check failed"
exit 1
fi
if [[ "${{ needs.build.result }}" != "success" ]]; then
echo "❌ Build failed"
exit 1
fi
if [[ "${{ needs.test.result }}" != "success" ]]; then
echo "❌ Tests failed"
exit 1
fi
if [[ "${{ needs.docker-build.result }}" != "success" ]]; then
echo "❌ Docker build failed"
exit 1
fi
echo "✅ All checks passed!"