mirror of https://gitgud.io/fatchan/jschan.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
image: node:latest
|
|
|
|
# Cache modules in between jobs
|
|
cache:
|
|
key: $CI_COMMIT_REF_SLUG
|
|
paths:
|
|
- .npm/
|
|
|
|
before_script:
|
|
- npm ci --cache .npm --prefer-offline
|
|
|
|
# Code linting
|
|
eslint:
|
|
stage: .pre
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
script:
|
|
- 'npm i -g eslint-cli'
|
|
- 'npm i eslint --save-dev'
|
|
- 'node node_modules/eslint/bin/eslint.js ./'
|
|
allow_failure: true
|
|
|
|
# Run tests
|
|
unit-tests:
|
|
stage: test
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
before_script:
|
|
- apt-get update -y && apt-get install -y fonts-urw-base35 gsfonts
|
|
script:
|
|
- 'npm install'
|
|
- 'npm install jest -g'
|
|
- 'cp configs/secrets.js.example configs/secrets.js'
|
|
- 'jest --ci --verbose --reporters=default --reporters=jest-junit --testPathIgnorePatterns=./test/ --collectCoverage --coverageReporters text --coverageReporters cobertura'
|
|
coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/'
|
|
artifacts:
|
|
when: always
|
|
reports:
|
|
junit:
|
|
- junit.xml
|
|
coverage_report:
|
|
coverage_format: cobertura
|
|
path: coverage/cobertura-coverage.xml
|
|
#TODO: stage: integration-tests
|
|
|