circle.yml
aliases:
- &restore-npm-cache
keys:
- v1-dependencies-{{ checksum "package-lock.json" }}
- v1-dependencies-master
- v1-dependencies-
- &restore-dist-cache
keys:
- v1-dist-{{ .Environment.CIRCLE_SHA1 }}
- v1-dist-master
- v1-dist-
version: 2
jobs:
install-dependencies:
docker:
- image: circleci/node:8.10
steps:
- checkout
- restore_cache: *restore-npm-cache
- run:
name: Install Node modules
command: npm i -ci
- save_cache:
key: v1-dependencies-{{ checksum "package-lock.json" }}
paths:
- node_modules
build:
docker:
- image: circleci/node:8.10
steps:
- checkout
- restore_cache: *restore-npm-cache
- run:
name: Build the app
command: npm run build
- save_cache:
key: v1-dist-{{ .Environment.CIRCLE_SHA1 }}
paths:
- build
lint:
docker:
- image: circleci/node:8.10
steps:
- checkout
- restore_cache: *restore-npm-cache
- run:
name: Run linter
command: npm run lint
test:
docker:
- image: circleci/node:8.10
steps:
- checkout
- restore_cache: *restore-npm-cache
- run:
name: Execute tests
command: npm test
coverage:
docker:
- image: circleci/node:8.10
steps:
- checkout
- restore_cache: *restore-npm-cache
- run:
name: Collect coverage
command: npm run coverage
- run:
name: Coveralls
command: cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
sonarqube:
docker:
- image: circleci/node:8.10
steps:
- checkout
# SonarQube download, config and scanning
- run: echo "Starting SonarQube scan"
- run: wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-linux.zip
- run: unzip sonar-scanner-cli-3.2.0.1227-linux.zip
- run: echo "sonar.host.url=https://sonarcloud.io" > sonar-scanner-3.2.0.1227-linux/conf/sonar-scanner.properties
- run: echo "sonar.login=$sonarqubekey" >> sonar-project.properties
- run: echo "sonar.organization=$sonarorg" >> sonar-project.properties
- run: sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner
- run: echo "Scan complete, data sent to sonarcloud"
workflows:
version: 2
build-and-deploy:
jobs:
- install-dependencies
- test:
requires:
- install-dependencies
- lint:
requires:
- install-dependencies
- coverage:
requires:
- install-dependencies
- build:
requires:
- lint
- test
#- sonarqube