aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkumavis <kumavis@users.noreply.github.com>2018-03-10 08:07:28 +0800
committerGitHub <noreply@github.com>2018-03-10 08:07:28 +0800
commitddc85354d3df508cbecc016fc0213a6560d885e1 (patch)
treef2a505855361fdd57e496af91c474d97d598ba6d
parent634e5d8f55efc6c307a867556116a565eee21b58 (diff)
parentefe516857a8177bfbc95af7a5aeda63c565ece25 (diff)
downloadtangerine-wallet-browser-ddc85354d3df508cbecc016fc0213a6560d885e1.tar
tangerine-wallet-browser-ddc85354d3df508cbecc016fc0213a6560d885e1.tar.gz
tangerine-wallet-browser-ddc85354d3df508cbecc016fc0213a6560d885e1.tar.bz2
tangerine-wallet-browser-ddc85354d3df508cbecc016fc0213a6560d885e1.tar.lz
tangerine-wallet-browser-ddc85354d3df508cbecc016fc0213a6560d885e1.tar.xz
tangerine-wallet-browser-ddc85354d3df508cbecc016fc0213a6560d885e1.tar.zst
tangerine-wallet-browser-ddc85354d3df508cbecc016fc0213a6560d885e1.zip
Merge pull request #3501 from MetaMask/circleci-2.0
ci - introduce circle ci 2.0
-rw-r--r--.circleci/config.yml152
-rw-r--r--circle.yml17
-rw-r--r--package.json3
3 files changed, 154 insertions, 18 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 000000000..9cd0a24ec
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,152 @@
+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:
+ requires:
+ - prep-deps-npm
+ - prep-deps-firefox
+ - prep-scss
+ - test-integration-flat:
+ 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:
+ 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-mascara:
+ 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
diff --git a/circle.yml b/circle.yml
deleted file mode 100644
index 6aba5c1be..000000000
--- a/circle.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-machine:
- node:
- version: 8.1.4
-test:
- override:
- - "npm test"
-dependencies:
- pre:
- - sudo apt-get update
- # get latest stable firefox
- - sudo apt-get install firefox
- - firefox_cmd=`which firefox`; sudo rm -f $firefox_cmd; sudo ln -s `which firefox.ubuntu` $firefox_cmd
- # get latest stable chrome
- - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
- - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- - sudo apt-get update
- - sudo apt-get install google-chrome-stable \ No newline at end of file
diff --git a/package.json b/package.json
index 7a7a62277..c5d9d3c45 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,8 @@
"test": "npm run lint && npm run test:coverage && npm run test:integration",
"test:unit": "METAMASK_ENV=test mocha --exit --require babel-core/register --require test/helper.js --recursive \"test/unit/**/*.js\"",
"test:single": "METAMASK_ENV=test mocha --require test/helper.js",
- "test:integration": "gulp build:scss && npm run test:flat && npm run test:mascara",
+ "test:integration": "npm run test:integration:build && npm run test:flat && npm run test:mascara",
+ "test:integration:build": "gulp build:scss",
"test:coverage": "nyc npm run test:unit && npm run test:coveralls-upload",
"test:coveralls-upload": "if [ $COVERALLS_REPO_TOKEN ]; then nyc report --reporter=text-lcov | coveralls; fi",
"test:flat": "npm run test:flat:build && karma start test/flat.conf.js",