nconf-lite/.circleci/config.yml

125 lines
3.2 KiB
YAML

version: 2.1
commands:
test-nodejs:
steps:
- run:
name: Versions
command: npm version
- checkout
- restore_cache:
keys:
- v{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ arch }}-npm-cache-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}
- v{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ arch }}-npm-cache-master-{{ .Environment.CIRCLE_JOB }}
- run:
name: Install dependencies
command: npm ci
- run:
name: Test
command: npm test
- coverage
- save-npm-cache
test-nodejs-legacy:
steps:
- run:
name: Versions
command: npm version
- checkout
- restore_cache:
keys:
- v{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ arch }}-npm-lock-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package-lock.json" }}
- v{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ arch }}-npm-lock-master-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package-lock.json" }}
- v{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ arch }}-npm-cache-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}
- v{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ arch }}-npm-cache-master-{{ .Environment.CIRCLE_JOB }}
- run:
name: Install dependencies
command: npm install
- run:
name: Test
command: npm test
- coverage
- save-npm-lock
- save-npm-cache
save-npm-lock:
steps:
- save_cache:
key: v{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ arch }}-npm-lock-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package-lock.json" }}
paths:
- node_modules
save-npm-cache:
steps:
- save_cache:
key: v{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ arch }}-npm-cache-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package-lock.json" }}
paths:
- ~/.npm/_cacache
coverage:
steps:
- run:
command: npm run cover
- run:
command: npm run coveralls
publish:
steps:
- checkout
- run:
name: Authenticate with registry
command: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc
- run:
name: publish to npm
command: npm publish
jobs:
node-v4:
docker:
- image: node:4
steps:
- test-nodejs-legacy
node-v6:
docker:
- image: node:6
steps:
- test-nodejs-legacy
node-v8:
docker:
- image: node:8
steps:
- test-nodejs
node-v10:
docker:
- image: node:10
steps:
- test-nodejs
node-v12:
docker:
- image: node:12
steps:
- test-nodejs
publish:
docker:
- image: node:10
steps:
- publish
workflows:
version: 2
node-multi-build:
jobs:
- node-v4
- node-v6
- node-v8
- node-v10
- node-v12
- publish:
requires:
- node-v4
- node-v6
- node-v8
- node-v10
- node-v12
filters:
tags:
only: /^v.*/
branches:
ignore: /.*/