feat: add AWS Bedrock provider support alongside Anthropic #1162
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main, develop] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| build-and-test: | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:16 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: test_db | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| ports: | |
| - 5432:5432 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Check code formatting | |
| run: bun run format:check | |
| - name: Build shared package | |
| run: bun run build:shared | |
| - name: Run type checks | |
| run: bun run typecheck | |
| - name: Build proxy service | |
| run: bun run build:proxy | |
| - name: Build dashboard service | |
| run: bun run build:dashboard | |
| - name: Run tests | |
| run: bun run test:ci | |
| - name: Install Playwright browsers | |
| run: bunx playwright install --with-deps chromium | |
| - name: Install PostgreSQL client | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y postgresql-client | |
| - name: Initialize database schema | |
| run: | | |
| PGPASSWORD=postgres psql -h localhost -U postgres -d test_db -f scripts/init-database.sql | |
| env: | |
| PGPASSWORD: postgres | |
| - name: Start dashboard service | |
| run: | | |
| cd services/dashboard | |
| bun run start & | |
| # Wait for service to be ready | |
| for i in {1..30}; do | |
| if curl -f http://localhost:3001/health 2>/dev/null || curl -f http://localhost:3001 2>/dev/null; then | |
| echo "Dashboard service is ready" | |
| break | |
| fi | |
| echo "Waiting for dashboard service... ($i/30)" | |
| sleep 1 | |
| done | |
| env: | |
| DASHBOARD_API_KEY: test_dashboard_key_ci | |
| DATABASE_URL: postgresql://postgres:postgres@localhost:5432/test_db | |
| PORT: 3001 | |
| - name: Run E2E smoke tests | |
| run: bunx playwright test --project=chromium --grep @smoke | |
| env: | |
| DASHBOARD_API_KEY: test_dashboard_key_ci | |
| TEST_BASE_URL: http://localhost:3001 | |
| CI: true | |
| - name: Upload test results on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-report | |
| path: | | |
| playwright-report/ | |
| test-results/ | |
| - name: Build Docker images | |
| run: | | |
| cd docker | |
| ./build-images.sh | |
| - name: Verify production builds | |
| run: | | |
| echo "Checking proxy production build..." | |
| if [ -d "services/proxy/dist" ]; then | |
| echo "✅ Proxy build successful" | |
| else | |
| echo "❌ Proxy build failed - dist directory not found" | |
| exit 1 | |
| fi | |
| echo "Checking dashboard production build..." | |
| if [ -d "services/dashboard/dist" ]; then | |
| echo "✅ Dashboard build successful" | |
| else | |
| echo "❌ Dashboard build failed - dist directory not found" | |
| exit 1 | |
| fi | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install dependencies | |
| run: bun install | |
| - name: Run linting | |
| run: bun run lint |