aboutsummaryrefslogtreecommitdiffstats
path: root/.circleci/config.yml
diff options
context:
space:
mode:
Diffstat (limited to '.circleci/config.yml')
-rw-r--r--.circleci/config.yml202
1 files changed, 202 insertions, 0 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 000000000..c14909783
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,202 @@
+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-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-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