Skip to content

feat: add AWS Bedrock provider support alongside Anthropic #1169

feat: add AWS Bedrock provider support alongside Anthropic

feat: add AWS Bedrock provider support alongside Anthropic #1169

Workflow file for this run

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