Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.31 KiB
Newer Older
alexander06's avatar
alexander06 committed
image: node:lts-alpine

alexander06's avatar
alexander06 committed
services:
  - postgres:latest

variables:
  TEST_DB_NAME: test
  POSTGRES_DB: fahrtenbuch
Alexander Rudolph's avatar
Alexander Rudolph committed
  POSTGRES_HOST: postgres
  POSTGRES_USER: postgres
  POSTGRES_PASSWORD: postgres
alexander06's avatar
alexander06 committed
  POSTGRES_HOST_AUTH_METHOD: trust
Alexander Rudolph's avatar
Alexander Rudolph committed
  POSTGRES_DRIVER: postgres
alexander06's avatar
alexander06 committed
  SKIP_PREFLIGHT_CHECK: "true"
Leander Tolksdorf's avatar
Leander Tolksdorf committed
  INITIAL_COORDINATOR_EMAIL: "initial@fahrtenbuch.example"
  INITIAL_COORDINATOR_PASSWORD: "password"
Alexander Rudolph's avatar
Alexander Rudolph committed
  JWT_SECRET: "RANDOM_SECRET_HARD_TO_GUESS"
alexander06's avatar
alexander06 committed

alexander06's avatar
alexander06 committed
# These folders and files are cached between builds
alexander06's avatar
alexander06 committed
cache:
  paths:
alexander06's avatar
alexander06 committed
    - client/node_modules/
    - server/node_modules/
    - server/dist/
alexander06's avatar
alexander06 committed

alexander06's avatar
alexander06 committed
# Stages for better overview
alexander06's avatar
alexander06 committed
stages:
alexander06's avatar
alexander06 committed
  - prepare
alexander06's avatar
alexander06 committed
  - build
  - test

alexander06's avatar
alexander06 committed
mirror_dockerfile_server:
  stage: prepare
  script:
    - cd server && npm install

mirror_dockerfile_client:
  stage: prepare
  script:
    - cd client && npm install

build_server:
alexander06's avatar
alexander06 committed
  stage: build
  script:
alexander06's avatar
alexander06 committed
    - cd server && npm run build
alexander06's avatar
alexander06 committed

alexander06's avatar
alexander06 committed
test_server:
  stage: test
  # I only run the server, since server tests are (almost) always against the API
  before_script:
    - cd server && npm run start &
  script:
    - cd server && npm run test
alexander06's avatar
alexander06 committed

alexander06's avatar
alexander06 committed
test_client:
alexander06's avatar
alexander06 committed
  stage: test
alexander06's avatar
alexander06 committed
  # If specific content needs to be tested, both the server and client need to be up and running
  before_script:
    - cd client && npm start &
    - cd server && npm start &
alexander06's avatar
alexander06 committed
  script:
alexander06's avatar
alexander06 committed
    - cd client && npm run test