image: node:latest

include:
  - project: 'general/templates'
    file: '/cicd/SAST-nodejs.gitlab-ci.yml'
  - project: 'general/templates'
    file: '/cicd/npm-audit.gitlab-ci.yml'
  - project: 'general/templates'
    file: '/cicd/sonarqube.gitlab-ci.yml'

variables:
  SONAR_PROJECT_KEY: security
  SONAR_TOKEN: 11922a8e774494f51e1d2f0e695949e4073e7df8

cache:
  paths:
    - node_modules/
    - docs/

stages:
  - build
  - test
  - quality
  - publish

build:
  stage: build
  script:
    - npm install

test:
  stage: test
  before_script:
    - npm install -g jest
  script:
    - jest
  artifacts:
    paths:
      - docs/test-report.html
      - docs/coverage/lcov.info

publish:
  stage: publish
  script:
    - npm publish