client:setup: image: node:10 stage: setup only: refs: - dev - merge_requests changes: - client/**/* script: - cd client - npm install artifacts: name: "artifacts" untracked: true expire_in: 15 mins paths: - client/.npm/ - client/node_modules/ cache: key: "$CI_COMMIT_REF_SLUG" paths: - client/.npm/ - client/node_modules/ client:linting: image: node:10 stage: test needs: ["client:setup"] only: refs: - dev - merge_requests changes: - client/**/* script: - cd client - npm run lint client:test: image: node:10 stage: test needs: ["client:setup"] only: refs: - dev - merge_requests changes: - client/**/* script: - cd client - npm run test:coverage coverage: /All files\s*\|\s*([\d\.]+)/ artifacts: paths: - client/output/coverage/jest/cobertura-coverage.xml expire_in: 5 min client:report: image: python stage: coverage_report only: refs: - dev - merge_requests changes: - client/**/* script: - cd client - python coverage_report.py artifacts: reports: cobertura: client/output/coverage/jest/cobertura-coverage.xml