version: 2 workflows: version: 2 full_test: jobs: - prep-deps - prep-scss: requires: - prep-deps - test-lint: requires: - prep-deps - test-unit: requires: - prep-deps - test-integration-mascara: requires: - prep-deps - prep-scss - test-integration-flat: requires: - prep-deps - prep-scss jobs: prep-deps: docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: Install deps via npm command: npm install - save_cache: key: dependency-cache-{{ checksum "package-lock.json" }} paths: - node_modules - run: name: Install Firefox command: > wget https://ftp.mozilla.org/pub/firefox/releases/58.0/linux-x86_64/en-US/firefox-58.0.tar.bz2 && tar xjf firefox-58.0.tar.bz2 && sudo rm -r /opt/firefox && sudo mv firefox /opt/firefox58 && sudo mv /usr/bin/firefox /usr/bin/firefox-old && sudo ln -s /opt/firefox58/firefox /usr/bin/firefox - save_cache: key: dependency-cache-firefox paths: - /opt/ - /usr/bin prep-scss: docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: Get Scss Cache key # this allows us to checksum against a whole directory command: ls -laR ui/app/css/ > scss_checksum - run: name: Build for integration tests command: npm run test:integration:build - save_cache: key: scss-cache-{{ checksum "scss_checksum" }} paths: - ui/app/css/output test-lint: docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: Test command: npm run lint test-unit: docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: test:coverage command: npm run test:coverage test-integration-flat: docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-firefox - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: Get Scss Cache key # this allows us to checksum against a whole directory command: ls -laR ui/app/css/ > scss_checksum - restore_cache: key: scss-cache-{{ checksum "scss_checksum" }} - run: name: test:integration:flat command: npm run test:flat test-integration-mascara: docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-firefox - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: Get Scss Cache key # this allows us to checksum against a whole directory command: ls -laR ui/app/css/ > scss_checksum - restore_cache: key: scss-cache-{{ checksum "scss_checksum" }} - run: name: test:integration:mascara command: npm run test:mascara