From bac307aa673ad43b67de3c2420747958fa85b3a1 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 16:18:50 +0200 Subject: [PATCH 01/13] ci: update 'on' rules --- .gitea/workflows/test.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 19c3822..4850c1e 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -3,6 +3,9 @@ run-name: ${{ gitea.actor }} on: push: branches: + - '*' + branches-ignore: + - 'main' jobs: build: -- 2.45.2 From 523511dba876cc2bbea5f44c29ff4a660ed7f057 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 16:20:50 +0200 Subject: [PATCH 02/13] ci: update 'on' --- .gitea/workflows/test.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 4850c1e..762903e 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -3,9 +3,8 @@ run-name: ${{ gitea.actor }} on: push: branches: - - '*' - branches-ignore: - - 'main' + - '**/*' + - '!main' jobs: build: -- 2.45.2 From 0a0c2a131a34ee0b9d6d2b66896152f4b32077f9 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 16:22:47 +0200 Subject: [PATCH 03/13] ci: test ping --- .gitea/workflows/test.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 762903e..f4b7021 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -26,6 +26,9 @@ jobs: ports: - 5432:5432 steps: + - name: test ping + run: ping postgres + - name: Checkout uses: actions/checkout@v3 with: @@ -42,9 +45,9 @@ jobs: - name: Push Database - Test run: bun run db:push env: - POSTGRES_URL: postgres://postgres:postgres@10.0.0.145:5432/postgres + POSTGRES_URL: postgres://postgres:postgres@localhost:5432/postgres - name: Test API run: bun test:api env: - POSTGRES_URL: postgres://postgres:postgres@10.0.0.145:5432/postgres \ No newline at end of file + POSTGRES_URL: postgres://postgres:postgres@localhost:5432/postgres \ No newline at end of file -- 2.45.2 From 2ebc5cae9c21114901ada147bfcb8332e5522867 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 17:55:04 +0200 Subject: [PATCH 04/13] ci: docker ps --- .gitea/workflows/test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index f4b7021..858f6b3 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -26,8 +26,8 @@ jobs: ports: - 5432:5432 steps: - - name: test ping - run: ping postgres + - name: docker ps + run: docker ps - name: Checkout uses: actions/checkout@v3 -- 2.45.2 From c81d62d9da23d8bc05d800e334ef96e46fd09125 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 17:56:41 +0200 Subject: [PATCH 05/13] ci: try service port --- .gitea/workflows/test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 858f6b3..01aeb6a 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -45,9 +45,9 @@ jobs: - name: Push Database - Test run: bun run db:push env: - POSTGRES_URL: postgres://postgres:postgres@localhost:5432/postgres + POSTGRES_URL: postgres://postgres:postgres@localhost:${{ job.services.postgres.ports[5432] }}/postgres - name: Test API run: bun test:api env: - POSTGRES_URL: postgres://postgres:postgres@localhost:5432/postgres \ No newline at end of file + POSTGRES_URL: postgres://postgres:postgres@localhost:${{ job.services.postgres.ports[5432] }}/postgres \ No newline at end of file -- 2.45.2 From 803afea55e826c71f4fcd1f08663b24ed8d83f58 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 17:59:15 +0200 Subject: [PATCH 06/13] ci: try service port --- .gitea/workflows/test.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 01aeb6a..d90584c 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -24,11 +24,18 @@ jobs: --health-timeout 5s --health-retries 5 ports: - - 5432:5432 + - 5432/tcp steps: - name: docker ps run: docker ps + - name: some + run: echo ${{ job.services.postgres.ports[5432] }} + + - name: some1 + run: echo ${{ job.services.postgres }} + + - name: Checkout uses: actions/checkout@v3 with: -- 2.45.2 From c32df225e1519cc15adf2eccf4fed6fb1ec2d6d0 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 18:00:51 +0200 Subject: [PATCH 07/13] ci: try service port --- .gitea/workflows/test.yaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index d90584c..5c4bdb0 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -29,12 +29,6 @@ jobs: - name: docker ps run: docker ps - - name: some - run: echo ${{ job.services.postgres.ports[5432] }} - - - name: some1 - run: echo ${{ job.services.postgres }} - - name: Checkout uses: actions/checkout@v3 @@ -49,6 +43,9 @@ jobs: - name: Install dependencies run: bun install + - name: docker ps + run: docker p + - name: Push Database - Test run: bun run db:push env: -- 2.45.2 From 6b6097c7ad275266109e3b574545902268422de2 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 18:01:54 +0200 Subject: [PATCH 08/13] ci: try service port --- .gitea/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 5c4bdb0..5feb296 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -44,7 +44,7 @@ jobs: run: bun install - name: docker ps - run: docker p + run: docker ps - name: Push Database - Test run: bun run db:push -- 2.45.2 From 2381ca5794bb6aa160426992e990376d0bd9a1ff Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 18:24:19 +0200 Subject: [PATCH 09/13] ci: use hostname and port --- .gitea/workflows/test.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 5feb296..2350f3f 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -24,7 +24,7 @@ jobs: --health-timeout 5s --health-retries 5 ports: - - 5432/tcp + - 5432:5432 steps: - name: docker ps run: docker ps @@ -49,9 +49,9 @@ jobs: - name: Push Database - Test run: bun run db:push env: - POSTGRES_URL: postgres://postgres:postgres@localhost:${{ job.services.postgres.ports[5432] }}/postgres + POSTGRES_URL: postgres://postgres:postgres@postgres:5432/postgres - name: Test API run: bun test:api env: - POSTGRES_URL: postgres://postgres:postgres@localhost:${{ job.services.postgres.ports[5432] }}/postgres \ No newline at end of file + POSTGRES_URL: postgres://postgres:postgres@postgres:5432/postgres \ No newline at end of file -- 2.45.2 From 7285fd945ae92844dc1e58fd5ce1445605f0ab3c Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 18:35:35 +0200 Subject: [PATCH 10/13] ci: check other env vars on testing --- .gitea/workflows/build_and_push.yaml | 27 +++++++++++++++++++++++++++ .gitea/workflows/test.yaml | 8 +------- apps/api/src/utils/startup.ts | 7 +++++++ 3 files changed, 35 insertions(+), 7 deletions(-) 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', -- 2.45.2 From 024e96df553a6d4291cceb43f93830d3a00cf95c Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 18:42:20 +0200 Subject: [PATCH 11/13] ci: db push force for ci --- .gitea/workflows/test.yaml | 2 +- package.json | 1 + packages/database/drizzle.ci.config.ts | 11 +++++++++++ packages/database/package.json | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 packages/database/drizzle.ci.config.ts diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 64a0cf1..8859103 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -40,7 +40,7 @@ jobs: run: bun install - name: Push Database - Test - run: bun run db:push + run: bun db:push:force env: POSTGRES_URL: postgres://postgres:postgres@postgres:5432/postgres diff --git a/package.json b/package.json index a7bc64e..12ed4d2 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "db:generate": "bun --filter '@boring.tools/database' db:generate", "db:migrate": "bun --filter '@boring.tools/database' db:migrate", "db:push": "bun --filter '@boring.tools/database' db:push", + "db:push:force": "bun --filter '@boring.tools/database' db:push:force", "test:api": "bun --filter '@boring.tools/api' test", "docker:website:build": "docker build -t git.hashdot.co/boring.tools/boring.tools/website -f ci/docker/website/Dockerfile .", "docker:website:push": "docker push git.hashdot.co/boring.tools/boring.tools/website", diff --git a/packages/database/drizzle.ci.config.ts b/packages/database/drizzle.ci.config.ts new file mode 100644 index 0000000..8737490 --- /dev/null +++ b/packages/database/drizzle.ci.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'drizzle-kit' +export default defineConfig({ + schema: './src/schema/index.ts', + out: './src/migrations', + dialect: 'postgresql', + dbCredentials: { + url: process.env.POSTGRES_URL as string, + }, + verbose: false, + strict: false, +}) diff --git a/packages/database/package.json b/packages/database/package.json index f7690c9..2dcc378 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -4,6 +4,7 @@ "type": "module", "scripts": { "db:push": "drizzle-kit push", + "db:push:force": "drizzle-kit push --config=drizzle.ci.config.ts", "db:studio": "drizzle-kit studio", "db:generate": "drizzle-kit generate", "db:migrate": "drizzle-kit migrate" -- 2.45.2 From 070a70c0b86138bcf625b2b6ac53d7a7dbe1f093 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 19:00:39 +0200 Subject: [PATCH 12/13] ci: refactor workflows --- .gitea/workflows/branches.yaml | 14 +++++++++ .../{build_and_push.yaml => main.yaml} | 30 ++----------------- .gitea/workflows/test.yaml | 6 +--- 3 files changed, 18 insertions(+), 32 deletions(-) create mode 100644 .gitea/workflows/branches.yaml rename .gitea/workflows/{build_and_push.yaml => main.yaml} (61%) diff --git a/.gitea/workflows/branches.yaml b/.gitea/workflows/branches.yaml new file mode 100644 index 0000000..71be1d8 --- /dev/null +++ b/.gitea/workflows/branches.yaml @@ -0,0 +1,14 @@ +name: Build and Push Docker Image +run-name: ${{ gitea.actor }} +on: + push: + branches: + - "!main" + - "**/*" + +jobs: + tests: + uses: ./.gitea/workflows/test.yaml + build: + needs: [tests] + runs-on: ubuntu-latest \ No newline at end of file diff --git a/.gitea/workflows/build_and_push.yaml b/.gitea/workflows/main.yaml similarity index 61% rename from .gitea/workflows/build_and_push.yaml rename to .gitea/workflows/main.yaml index 49307d0..4ae029d 100644 --- a/.gitea/workflows/build_and_push.yaml +++ b/.gitea/workflows/main.yaml @@ -6,25 +6,11 @@ on: - main jobs: + tests: + uses: ./.gitea/workflows/test.yaml build: + needs: [tests] 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 @@ -39,16 +25,6 @@ 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 8859103..16bb341 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -1,10 +1,6 @@ name: Test run-name: ${{ gitea.actor }} -on: - push: - branches: - - '**/*' - - '!main' +on: [workflow_call] jobs: build: -- 2.45.2 From 63532c67471cbb5c00e2cd731c96ecf61becf5ef Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 19:01:52 +0200 Subject: [PATCH 13/13] ci: simplify --- .gitea/workflows/branches.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitea/workflows/branches.yaml b/.gitea/workflows/branches.yaml index 71be1d8..b359d68 100644 --- a/.gitea/workflows/branches.yaml +++ b/.gitea/workflows/branches.yaml @@ -8,7 +8,4 @@ on: jobs: tests: - uses: ./.gitea/workflows/test.yaml - build: - needs: [tests] - runs-on: ubuntu-latest \ No newline at end of file + uses: ./.gitea/workflows/test.yaml \ No newline at end of file -- 2.45.2