version: 2 references: unittest-steps: &unittest-steps - checkout - restore_cache: keys: - v2-dependencies-{{ .Environment.CIRCLE_JOB }}-{{ arch }}-{{ checksum "package.json" }} - run: npm install - run: npm run build - run: npm run build:unittests - run: npm run test:unittests - save_cache: key: v2-dependencies-{{ .Environment.CIRCLE_JOB }}-{{ arch }}-{{ checksum "package.json" }} paths: - node_modules jobs: unittest-node8: docker: - image: circleci/node:8-browsers steps: *unittest-steps unittest-node10: docker: - image: circleci/node:10-browsers steps: *unittest-steps uitest-firefox: docker: - image: circleci/node:10-browsers steps: - checkout - restore_cache: keys: - v2-dependencies-{{ .Environment.CIRCLE_JOB }}-{{ arch }}-{{ checksum "package.json" }} - run: npm install - run: npm run build:uitests - run: npm run test:uitests firefox:headless - save_cache: key: v2-dependencies-{{ .Environment.CIRCLE_JOB }}-{{ arch }}-{{ checksum "package.json" }} paths: - node_modules uitest-chrome: docker: - image: circleci/node:10-browsers steps: - checkout - restore_cache: keys: - v2-dependencies-{{ .Environment.CIRCLE_JOB }}-{{ arch }}-{{ checksum "package.json" }} - run: npm install - run: npm run build:uitests - run: npm run test:uitests chrome:headless - save_cache: key: v2-dependencies-{{ .Environment.CIRCLE_JOB }}-{{ arch }}-{{ checksum "package.json" }} paths: - node_modules lint: docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: keys: - v2-dependencies-test-node8-{{ arch }}-{{ checksum "package.json" }} - run: npm install - run: npm run lint workflows: version: 2 build: jobs: - unittest-node8 - unittest-node10 - uitest-firefox - uitest-chrome - lint