diff --git a/.github/workflows/backend-ci.yaml b/.github/workflows/backend-ci.yaml index 44246cc1..10bb0656 100644 --- a/.github/workflows/backend-ci.yaml +++ b/.github/workflows/backend-ci.yaml @@ -1,4 +1,4 @@ -name: Backend CI +name: Backend on: push @@ -47,3 +47,69 @@ jobs: run: | cd apps/backend pnpm types:check + + e2e: + runs-on: ubuntu-latest + + services: + postgres: + image: postgres + env: + POSTGRES_USER: postgres_user + POSTGRES_PASSWORD: postgres_password + POSTGRES_DB: metro-now + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + redis: + image: redis + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 6379:6379 + + steps: + - name: Check out code + uses: actions/checkout@v4 + with: + fetch-depth: 2 + + - uses: pnpm/action-setup@v4 + + - name: Setup Node.js environment + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "pnpm" + + - name: Install dependencies + run: | + pnpm install + + - name: Run migrations + run: | + cd apps/backend + cp .env.local.example .env.local + pnpm prisma:migrate:deploy + + - name: Run seeds + run: | + cd apps/backend + cp .env.local.example .env.local + pnpm prisma:generate + pnpm prisma:seed + + - name: Test e2e + run: | + cd apps/backend + cp .env.local.example .env.local + pnpm prisma:generate + pnpm test:e2e diff --git a/apps/backend/.env.local.example b/apps/backend/.env.local.example index 99b8e9cd..66c23564 100644 --- a/apps/backend/.env.local.example +++ b/apps/backend/.env.local.example @@ -2,8 +2,8 @@ GOLEMIO_API_KEY= # postgres -POSTGRES_USER=pg_user -POSTGRES_PASSWORD=pg_password +POSTGRES_USER=postgres_user +POSTGRES_PASSWORD=postgres_password POSTGRES_DB=metro-now