From 8f53f4c6754a86d799a0e94066a6cc4d15d750c0 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Tue, 1 Oct 2024 13:46:51 +0200 Subject: [PATCH] ci: add testing --- .../{main.yaml => build_and_push.yaml} | 3 ++ .gitea/workflows/test.yaml | 44 +++++++++++++++++++ package.json | 4 ++ 3 files changed, 51 insertions(+) rename .gitea/workflows/{main.yaml => build_and_push.yaml} (94%) create mode 100644 .gitea/workflows/test.yaml diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/build_and_push.yaml similarity index 94% rename from .gitea/workflows/main.yaml rename to .gitea/workflows/build_and_push.yaml index 4bba295..4ae029d 100644 --- a/.gitea/workflows/main.yaml +++ b/.gitea/workflows/build_and_push.yaml @@ -6,7 +6,10 @@ on: - main jobs: + tests: + uses: ./.gitea/workflows/test.yaml build: + needs: [tests] runs-on: ubuntu-latest steps: - name: Checkout diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml new file mode 100644 index 0000000..28c0406 --- /dev/null +++ b/.gitea/workflows/test.yaml @@ -0,0 +1,44 @@ +name: Test +run-name: ${{ gitea.actor }} +on: [workflow_call] + +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 + with: + fetch-depth: 0 + + - name: Use Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.1.29 + + - name: Install dependencies + run: bun install + + - name: Push Database + run: bun run db:push + env: + POSTGRES_URL: postgres://postgres:postgres@localhost:5432/postgres + + - name: Test API + run: bun test:api \ No newline at end of file diff --git a/package.json b/package.json index 0cff669..a7bc64e 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,10 @@ "check:packages": "bunx biome check --write --config-path ./biome.json ./packages", "dev": "bun --filter '*' dev", "build": "bun --filter '*' build", + "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", + "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", "docker:website": "bun docker:website:build && bun docker:website:push",