2023-12-20 11:44:49 +01:00
name : Build, Lint & Tests
2020-11-24 10:22:27 +01:00
2020-12-21 15:58:07 +01:00
on :
2021-01-06 13:56:44 +01:00
push :
2021-03-04 14:27:43 +01:00
branches :
2021-12-23 14:12:19 +01:00
- main
2021-06-04 15:33:47 +02:00
paths-ignore :
2021-10-25 18:54:46 +02:00
- website/**
2022-05-20 11:59:42 +02:00
- coverage/**
2023-12-20 11:44:49 +01:00
pull_request :
paths-ignore :
- frontend/**
- website/**
- coverage/**
2020-11-24 10:22:27 +01:00
jobs :
build :
runs-on : ubuntu-latest
2023-04-18 10:35:32 +02:00
name : build
2020-11-24 10:22:27 +01:00
strategy :
matrix :
2023-04-18 10:35:32 +02:00
node-version : [ 18. x]
2020-11-24 10:22:27 +01:00
services :
# Label used to access the service container
postgres :
# Docker Hub image
image : postgres
# Provide the password for postgres
env :
POSTGRES_PASSWORD : postgres
2023-10-24 12:33:17 +02:00
POSTGRES_INITDB_ARGS : "--no-sync"
2020-11-24 10:22:27 +01:00
# Set health checks to wait until postgres has started
ports :
- 5432 : 5432
options : >-
2022-06-09 14:26:35 +02:00
--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
2022-07-01 13:51:26 +02:00
2020-11-24 10:22:27 +01:00
steps :
2023-10-05 10:19:57 +02:00
- uses : actions/checkout@v4
2022-06-09 14:26:35 +02:00
- name : Use Node.js ${{ matrix.node-version }}
uses : actions/setup-node@v3
with :
2023-11-21 13:58:34 +01:00
node-version : ${{ matrix.node-version }}
2022-06-09 14:26:35 +02:00
cache : 'yarn'
2023-12-20 11:44:49 +01:00
- run : yarn install --frozen-lockfile --ignore-scripts
2022-06-09 14:26:35 +02:00
- run : yarn lint
2023-12-20 11:44:49 +01:00
- run : yarn build:backend
2023-05-25 13:03:54 +02:00
- run : yarn run test:report # This adds test results as github check to the workflow
2022-06-09 14:26:35 +02:00
env :
CI : true
TEST_DATABASE_URL : postgres://postgres:postgres@localhost:5432/postgres
DATABASE_URL : postgres://postgres:postgres@localhost:5432/postgres
2023-12-20 11:44:49 +01:00
- name : Upload test report to build # Done this way since external PRs would not be able to write the check. See https://github.com/marketplace/actions/test-reporter#recommended-setup-for-public-repositories
uses : actions/upload-artifact@v3
if : (success() || failure()) && github.ref == 'refs/heads/main'
with :
name : test-results
path : ./reports/jest-junit.xml