aboutsummaryrefslogtreecommitdiffstats
path: root/.circleci/config.yml
diff options
context:
space:
mode:
Diffstat (limited to '.circleci/config.yml')
-rw-r--r--.circleci/config.yml135
1 files changed, 127 insertions, 8 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index c14909783..ee2054130 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -6,12 +6,28 @@ workflows:
jobs:
- prep-deps-npm
- prep-deps-firefox
+ - prep-build:
+ requires:
+ - prep-deps-npm
- prep-scss:
requires:
- prep-deps-npm
- test-lint:
requires:
- prep-deps-npm
+ - test-e2e:
+ requires:
+ - prep-deps-npm
+ - prep-build
+ - job-screens:
+ requires:
+ - prep-deps-npm
+ - prep-build
+ - job-publish:
+ requires:
+ - prep-deps-npm
+ - prep-build
+ - job-screens
- test-unit:
requires:
- prep-deps-npm
@@ -33,6 +49,16 @@ workflows:
- prep-deps-npm
- prep-deps-firefox
- prep-scss
+ - all-tests-pass:
+ requires:
+ - test-lint
+ - test-unit
+ - test-e2e
+ - job-screens
+ - test-integration-mascara-chrome
+ - test-integration-mascara-firefox
+ - test-integration-flat-chrome
+ - test-integration-flat-firefox
jobs:
prep-deps-npm:
@@ -41,7 +67,7 @@ jobs:
steps:
- checkout
- restore_cache:
- key: dependency-cache-{{ checksum "package-lock.json" }}
+ key: dependency-cache-{{ .Revision }}
- run:
name: Install deps via npm
command: npm install
@@ -49,6 +75,10 @@ jobs:
key: dependency-cache-{{ checksum "package-lock.json" }}
paths:
- node_modules
+ - save_cache:
+ key: dependency-cache-{{ .Revision }}
+ paths:
+ - node_modules
prep-deps-firefox:
docker:
@@ -65,6 +95,24 @@ jobs:
paths:
- firefox
+ prep-build:
+ docker:
+ - image: circleci/node:8-browsers
+ steps:
+ - checkout
+ - restore_cache:
+ key: dependency-cache-{{ .Revision }}
+ - run:
+ name: build:dist
+ command: npm run dist
+ - run:
+ name: build:debug
+ command: find dist/ -type f -exec md5sum {} \; | sort -k 2
+ - save_cache:
+ key: build-cache-{{ .Revision }}
+ paths:
+ - dist
+ - builds
prep-scss:
docker:
@@ -72,7 +120,7 @@ jobs:
steps:
- checkout
- restore_cache:
- key: dependency-cache-{{ checksum "package-lock.json" }}
+ key: dependency-cache-{{ .Revision }}
- run:
name: Get Scss Cache key
# this allows us to checksum against a whole directory
@@ -91,18 +139,81 @@ jobs:
steps:
- checkout
- restore_cache:
- key: dependency-cache-{{ checksum "package-lock.json" }}
+ key: dependency-cache-{{ .Revision }}
- run:
name: Test
command: npm run lint
+ test-e2e:
+ docker:
+ - image: circleci/node:8-browsers
+ steps:
+ - checkout
+ - restore_cache:
+ key: dependency-cache-{{ .Revision }}
+ - restore_cache:
+ key: build-cache-{{ .Revision }}
+ - run:
+ name: Test
+ command: npm run test:e2e
+ - store_artifacts:
+ path: test-artifacts
+ destination: test-artifacts
+
+ job-screens:
+ docker:
+ - image: circleci/node:8-browsers
+ steps:
+ - checkout
+ - restore_cache:
+ key: dependency-cache-{{ .Revision }}
+ - restore_cache:
+ key: build-cache-{{ .Revision }}
+ - run:
+ name: Test
+ command: npm run test:screens
+ - save_cache:
+ key: job-screens-{{ .Revision }}
+ paths:
+ - test-artifacts
+
+ job-publish:
+ docker:
+ - image: circleci/node:8-browsers
+ steps:
+ - checkout
+ - restore_cache:
+ key: dependency-cache-{{ .Revision }}
+ - restore_cache:
+ key: build-cache-{{ .Revision }}
+ - restore_cache:
+ key: job-screens-{{ .Revision }}
+ - store_artifacts:
+ path: dist/mascara
+ destination: builds/mascara
+ - store_artifacts:
+ path: dist/sourcemaps
+ destination: builds/sourcemaps
+ - store_artifacts:
+ path: builds
+ destination: builds
+ - store_artifacts:
+ path: test-artifacts
+ destination: test-artifacts
+ - run:
+ name: build:announce
+ command: ./development/metamaskbot-build-announce.js
+ - run:
+ name: sentry sourcemaps upload
+ command: npm run sentry:publish
+
test-unit:
docker:
- image: circleci/node:8-browsers
steps:
- checkout
- restore_cache:
- key: dependency-cache-{{ checksum "package-lock.json" }}
+ key: dependency-cache-{{ .Revision }}
- run:
name: test:coverage
command: npm run test:coverage
@@ -124,7 +235,7 @@ jobs:
&& 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" }}
+ key: dependency-cache-{{ .Revision }}
- run:
name: Get Scss Cache key
# this allows us to checksum against a whole directory
@@ -143,7 +254,7 @@ jobs:
steps:
- checkout
- restore_cache:
- key: dependency-cache-{{ checksum "package-lock.json" }}
+ key: dependency-cache-{{ .Revision }}
- run:
name: Get Scss Cache key
# this allows us to checksum against a whole directory
@@ -171,7 +282,7 @@ jobs:
&& 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" }}
+ key: dependency-cache-{{ .Revision }}
- run:
name: Get Scss Cache key
# this allows us to checksum against a whole directory
@@ -190,7 +301,7 @@ jobs:
steps:
- checkout
- restore_cache:
- key: dependency-cache-{{ checksum "package-lock.json" }}
+ key: dependency-cache-{{ .Revision }}
- run:
name: Get Scss Cache key
# this allows us to checksum against a whole directory
@@ -200,3 +311,11 @@ jobs:
- run:
name: test:integration:mascara
command: npm run test:mascara
+
+ all-tests-pass:
+ docker:
+ - image: circleci/node:8-browsers
+ steps:
+ - run:
+ name: All Tests Passed
+ command: echo 'weew - everything passed!'