version: 2 templates: # Test the build **only** no webdriver build-steps: &build-steps - checkout - run: name: "Create artifacts directory" command: mkdir /tmp/artifacts - restore_cache: key: v1-dependencies-{{ arch }}-{{ checksum "package.json" }} - run: npm install - save_cache: paths: - node_modules key: v1-dependencies-{{ arch }}-{{ checksum "package.json" }} - run: mkdir -p /tmp/artifacts/logs - run: npm run build - run: npm run lint - run: npm run lint-styles - store_artifacts: path: /tmp/artifacts destination: /artifacts # Test in webdriver wdio-steps: &wdio-steps - checkout - run: name: "Create artifacts directory" command: mkdir /tmp/artifacts - restore_cache: key: v1-dependencies-{{ arch }}-{{ checksum "package.json" }} - run: npm install - save_cache: paths: - node_modules key: v1-dependencies-{{ arch }}-{{ checksum "package.json" }} - run: mkdir -p /tmp/artifacts/logs - run: npm run build - run: npm run profiling-build - run: npm run lint - run: npm run lint-styles - run: DOCKER_HOST=localhost npm test - run: ./node_modules/.bin/istanbul report --include /tmp/artifacts/coverage/coverage.json --dir /tmp/artifacts/coverage html lcov - store_artifacts: path: /tmp/artifacts destination: /artifacts jobs: build-linux-node-v8: docker: - image: node:8 working_directory: ~/repo-linux-node-v8 steps: *build-steps build-linux-node-v10: docker: - image: node:10 - image: selenium/standalone-chrome:3.141.59 working_directory: ~/repo-linux-node-v10 steps: *wdio-steps build-linux-node-v12: docker: - image: node:12 working_directory: ~/repo-linux-node-v12 steps: *build-steps build-osx-node-v8: macos: xcode: "9.0" dependencies: override: - brew install node@8 working_directory: ~/repo-osx-node-v8 steps: *build-steps build-osx-node-v10: macos: xcode: "9.0" dependencies: override: - brew install node@10 working_directory: ~/repo-osx-node-v10 steps: *build-steps build-osx-node-v12: macos: xcode: "9.0" dependencies: override: - brew install node@12 working_directory: ~/repo-osx-node-v12 steps: *build-steps workflows: version: 2 build: jobs: - build-linux-node-v8 - build-linux-node-v10 - build-linux-node-v12 - build-osx-node-v8 - build-osx-node-v10 - build-osx-node-v12