From bfd077d0de8e57f474f4b4b946cd56778529fc1d Mon Sep 17 00:00:00 2001 From: Krystof Date: Sun, 20 Oct 2024 14:09:13 +0200 Subject: [PATCH] chore(ci): services in be ci --- .github/workflows/backend-ci.yaml | 74 ++++++++++++++++++++++++++++++- apps/backend/.env.local.example | 4 +- 2 files changed, 75 insertions(+), 3 deletions(-) diff --git a/.github/workflows/backend-ci.yaml b/.github/workflows/backend-ci.yaml index 44246cc..4b70d73 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,75 @@ 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: Setup environment + run: | + cd apps/backend + tail -n +2 ".env.local.example" > ".env.local" + echo "GOLEMIO_API_KEY=${{ secrets.GOLEMIO_API_KEY }}" >> ".env.local" + + - name: Prisma generate + run: | + cd apps/backend + pnpm prisma:generate + + - name: Run migrations + run: | + cd apps/backend + pnpm prisma:migrate:deploy + + - name: Run seeds + run: | + cd apps/backend + pnpm prisma:seed + + - name: Test e2e + run: | + cd apps/backend + pnpm test:e2e diff --git a/apps/backend/.env.local.example b/apps/backend/.env.local.example index 99b8e9c..66c2356 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