From 41df0341abfa912b646c55b3609e9fcfb91db3c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20S=C3=B8rensen?= Date: Fri, 25 Oct 2024 21:42:55 +0000 Subject: [PATCH] Setup CI --- .github/dependabot.yml | 13 ++++++ .github/workflows/ci.yml | 85 ++++++++++++++++++++++++++++++++++++++++ .tool-versions | 1 + 3 files changed, 99 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .tool-versions diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..0ab7011 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + - package-ecosystem: 'npm' + directory: '/' + schedule: + interval: 'weekly' + allow: + - dependency-type: 'all' + + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'daily' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..07c9dad --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,85 @@ +name: CI + +on: [push] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: checkout repository + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.tool-versions' + cache: 'npm' + - name: npm + run: npm ci + - name: lint + run: npm run lint + schema: + runs-on: ubuntu-latest + + env: + DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres + + services: + postgres: + image: postgres:15.5-alpine + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + ports: + - 5432:5432 + options: --health-cmd pg_isready --health-interval 2s --health-timeout 5s --health-retries 5 + + steps: + - name: checkout repository + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.tool-versions' + cache: 'npm' + - name: npm + run: npm ci + - name: run migrations + run: | + node ace db:migrate + - name: check git diff + run: git diff --exit-code db/types.d.ts + + tests: + runs-on: ubuntu-latest + + env: + DATABASE_SERVER: postgres://postgres:postgres@localhost:5432 + NODE_ENV: test + + services: + postgres: + image: postgres:15.5-alpine + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_HOST_AUTH_METHOD: trust + ports: + - 5432:5432 + options: --health-cmd pg_isready --health-interval 2s --health-timeout 5s --health-retries 5 + + steps: + - name: checkout repository + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.tool-versions' + cache: 'npm' + - name: npm + run: npm ci + - name: playwright + run: npx playwright install chromium + - name: setup database + run: | + node ace db:create + node ace db:migrate + - name: tests + run: node ace test --coverage diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..86560b2 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +nodejs v20.16.0