diff --git a/.gitea/workflows/build_and_push.yaml b/.gitea/workflows/build_and_push.yaml index 4bba295..49307d0 100644 --- a/.gitea/workflows/build_and_push.yaml +++ b/.gitea/workflows/build_and_push.yaml @@ -8,6 +8,23 @@ on: jobs: build: runs-on: ubuntu-latest + services: + postgres: + image: postgres:17-alpine + + env: + POSTGRES_PASSWORD: postgres + POSTGRES_USER: postgres + POSTGRES_DB: postgres + + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + steps: - name: Checkout uses: actions/checkout@v3 @@ -22,6 +39,16 @@ jobs: - name: Install dependencies run: bun install + - name: Push Database - Test + run: bun run db:push + env: + POSTGRES_URL: postgres://postgres:postgres@postgres:5432/postgres + + - name: Test API + run: bun test:api + env: + POSTGRES_URL: postgres://postgres:postgres@postgres:5432/postgres + - name: Build run: bun run build env: diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 2350f3f..64a0cf1 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -26,10 +26,6 @@ jobs: ports: - 5432:5432 steps: - - name: docker ps - run: docker ps - - - name: Checkout uses: actions/checkout@v3 with: @@ -43,9 +39,6 @@ jobs: - name: Install dependencies run: bun install - - name: docker ps - run: docker ps - - name: Push Database - Test run: bun run db:push env: @@ -54,4 +47,5 @@ jobs: - name: Test API run: bun test:api env: + NODE_ENV: test POSTGRES_URL: postgres://postgres:postgres@postgres:5432/postgres \ No newline at end of file diff --git a/apps/api/src/utils/startup.ts b/apps/api/src/utils/startup.ts index 509abed..a9214db 100644 --- a/apps/api/src/utils/startup.ts +++ b/apps/api/src/utils/startup.ts @@ -8,6 +8,13 @@ declare module 'bun' { } export const startup = () => { + if (import.meta.env.NODE_ENV === 'test') { + if (!import.meta.env.POSTGRES_URL) { + console.error('Env Var POSTGRES_URL is missing!') + process.exit(0) + } + return + } const keys = [ 'POSTGRES_URL', 'CLERK_WEBHOOK_SECRET',