version: 2 workflows: version: 2 full_test: jobs: - prep-deps-npm - prep-deps-firefox - prep-scss: requires: - prep-deps-npm - test-lint: requires: - prep-deps-npm - test-e2e: requires: - prep-deps-npm - test-unit: requires: - prep-deps-npm - test-integration-mascara-chrome: requires: - prep-deps-npm - prep-scss - test-integration-mascara-firefox: requires: - prep-deps-npm - prep-deps-firefox - prep-scss - test-integration-flat-chrome: requires: - prep-deps-npm - prep-scss - test-integration-flat-firefox: requires: - prep-deps-npm - prep-deps-firefox - prep-scss jobs: prep-deps-npm: 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 prep-deps-firefox: docker: - image: circleci/node:8-browsers steps: - checkout - run: name: Download 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 - save_cache: key: dependency-cache-firefox-{{ .Revision }} paths: - firefox 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: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > 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-e2e: docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: Build command: npm run dist - run: name: Test command: npm run test:e2e 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-firefox: environment: browsers: '["Firefox"]' docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-firefox-{{ .Revision }} - run: name: Install firefox command: > 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 - 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: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum - restore_cache: key: scss-cache-{{ checksum "scss_checksum" }} - run: name: test:integration:flat command: npm run test:flat test-integration-flat-chrome: environment: browsers: '["Chrome"]' 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: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum - restore_cache: key: scss-cache-{{ checksum "scss_checksum" }} - run: name: test:integration:flat command: npm run test:flat test-integration-mascara-firefox: environment: browsers: '["Firefox"]' docker: - image: circleci/node:8-browsers steps: - checkout - restore_cache: key: dependency-cache-firefox-{{ .Revision }} - run: name: Install firefox command: > 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 - 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: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum - restore_cache: key: scss-cache-{{ checksum "scss_checksum" }} - run: name: test:integration:mascara command: npm run test:mascara test-integration-mascara-chrome: environment: browsers: '["Chrome"]' 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: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum - restore_cache: key: scss-cache-{{ checksum "scss_checksum" }} - run: name: test:integration:mascara command: npm run test:mascara