diff options
author | kumavis <kumavis@users.noreply.github.com> | 2018-03-10 08:07:28 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-10 08:07:28 +0800 |
commit | ddc85354d3df508cbecc016fc0213a6560d885e1 (patch) | |
tree | f2a505855361fdd57e496af91c474d97d598ba6d | |
parent | 634e5d8f55efc6c307a867556116a565eee21b58 (diff) | |
parent | efe516857a8177bfbc95af7a5aeda63c565ece25 (diff) | |
download | tangerine-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.yml | 152 | ||||
-rw-r--r-- | circle.yml | 17 | ||||
-rw-r--r-- | package.json | 3 |
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", |