stages: - install - build - test cache: key: files: - package-lock.json paths: - node_modules policy: pull image: node:alpine variables: PROJECT_PATH: "$CI_PROJECT_DIR" APP_OUTPUT_PATH: "$CI_PROJECT_DIR/dist/cic-staff-client" OUTPUT_PATH: "$CI_PROJECT_DIR/dist" CLI_VERSION: 10.2.0 install_dependencies: stage: install tags: - docker script: - npm install only: refs: - merge_requests - master changes: - package-lock.json build: stage: build tags: - docker script: - npm ng build --prod after_script: - mv $PROJECT_PATH/nginx.conf $PROJECT_PATH/default.conf - cp $PROJECT_PATH/default.conf $APP_OUTPUT_PATH - cp $PROJECT_PATH/Dockerfile $APP_OUTPUT_PATH artifacts: name: "cic-staff-client-pipeline" expire_in: 1 days paths: - $APP_OUTPUT_PATH test:karma: stage: test allow_failure: false tags: - docker before_script: - apk add chromium - export CHROME_BIN=/usr/bin/chromium-browser script: - npm ng test --code-coverage --progress false --watch false --browsers=GitlabChromeHeadless coverage: '/Statements\s+:\s\d+.\d+%/' artifacts: name: "tests-and-coverage" reports: junit: - $OUTPUT_PATH/tests/junit-test-results.xml cobertura: - $OUTPUT_PATH/coverage/cobetura-coverage.xml paths: - coverage/ test:e2e: stage: test allow_failure: false tags: - docker script: - npm ng e2e test:nglint: stage: test tags: - docker script: - npm ng lint