This PR mainly refactors the code by extracting a "core" package which is then used by the "backend" and "frontend" apps. Apart from this the PR also contains several smaller changes like fixing dependabot, upgrading dependencies, aligned "package.json" files, added tests, ... addresses step 1 of #32 closes #136 --------- Co-authored-by: Marco Pasqualetti <marco.pasqualetti@live.com>
130 lines
2.7 KiB
YAML
130 lines
2.7 KiB
YAML
name: CI
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
concurrency:
|
|
group: "${{ github.workflow }}-${{ github.head_ref }}"
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
build-and-test:
|
|
name: Build and test ${{ matrix.node }} on ${{ matrix.os }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node: [24]
|
|
os: [ubuntu-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Run vercel-preparation.sh
|
|
run: |
|
|
chmod +x ./vercel-preparation.sh
|
|
./vercel-preparation.sh
|
|
|
|
- name: Install Dependencies
|
|
uses: ./.github/actions/install-dependencies
|
|
with:
|
|
node-version: ${{ matrix.node }}
|
|
|
|
- name: Build packages
|
|
run: pnpm run build:packages
|
|
|
|
- name: Build frontend
|
|
run: pnpm run build:frontend
|
|
|
|
- name: Run tests
|
|
run: pnpm run test --silent
|
|
|
|
frontend-test-e2e:
|
|
name: Frontend E2E test
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
timeout-minutes: 60
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Install Dependencies
|
|
uses: ./.github/actions/install-dependencies
|
|
|
|
- name: Build packages
|
|
run: pnpm run build:packages
|
|
|
|
- name: Install Playwright Browsers
|
|
run: pnpm exec playwright install --with-deps
|
|
|
|
- name: Run Playwright tests
|
|
run: pnpm --filter ./apps/frontend/ run test:e2e
|
|
|
|
backend-test-e2e:
|
|
name: Backend E2E test
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
continue-on-error: true
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Install Dependencies
|
|
uses: ./.github/actions/install-dependencies
|
|
|
|
- name: Build packages
|
|
run: pnpm run build:packages
|
|
|
|
- name: Run backend end-to-end tests
|
|
run: pnpm --filter ./apps/backend/ run test:e2e
|
|
|
|
code-checks:
|
|
name: Code checks
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Install Dependencies
|
|
uses: ./.github/actions/install-dependencies
|
|
|
|
- name: Format
|
|
run: pnpm run format:check
|
|
|
|
- name: Lint
|
|
run: pnpm run lint
|
|
|
|
- name: Lint (knip)
|
|
run: pnpm run lint:knip
|
|
|
|
- name: Typecheck
|
|
run: pnpm run typecheck
|