aboutsummaryrefslogtreecommitdiffstats
path: root/.circleci/config.yml
diff options
context:
space:
mode:
Diffstat (limited to '.circleci/config.yml')
-rw-r--r--.circleci/config.yml83
1 files changed, 83 insertions, 0 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index c14909783..98f27030e 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -6,12 +6,19 @@ 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-build
+ - prep-deps-npm
- test-unit:
requires:
- prep-deps-npm
@@ -33,6 +40,15 @@ workflows:
- prep-deps-npm
- prep-deps-firefox
- prep-scss
+ - all-tests-pass:
+ requires:
+ - test-lint
+ - test-unit
+ - test-e2e
+ - test-integration-mascara-chrome
+ - test-integration-mascara-firefox
+ - test-integration-flat-chrome
+ - test-integration-flat-firefox
jobs:
prep-deps-npm:
@@ -65,6 +81,49 @@ jobs:
paths:
- firefox
+ prep-build:
+ docker:
+ - image: circleci/node:8-browsers
+ steps:
+ - checkout
+ - restore_cache:
+ key: dependency-cache-{{ checksum "package-lock.json" }}
+ - 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
+ - store_artifacts:
+ path: dist/mascara
+ destination: builds/mascara
+ - store_artifacts:
+ path: builds
+ destination: builds
+ - run:
+ name: build:announce
+ command: |
+ CIRCLE_PR_NUMBER="${CIRCLE_PR_NUMBER:-${CIRCLE_PULL_REQUEST##*/}}"
+ SHORT_SHA1=$(echo $CIRCLE_SHA1 | cut -c 1-7)
+ BUILD_LINK_BASE="https://$CIRCLE_BUILD_NUM-42009758-gh.circle-artifacts.com/0/builds"
+ VERSION=$(node -p 'require("./dist/chrome/manifest.json").version')
+ MASCARA="$BUILD_LINK_BASE/mascara/home.html"
+ CHROME="$BUILD_LINK_BASE/metamask-chrome-$VERSION.zip"
+ FIREFOX="$BUILD_LINK_BASE/metamask-firefox-$VERSION.zip"
+ OPERA="$BUILD_LINK_BASE/metamask-opera-$VERSION.zip"
+ EDGE="$BUILD_LINK_BASE/metamask-edge-$VERSION.zip"
+ COMMENT_MAIN="Builds ready [$SHORT_SHA1]: [mascara][mascara], [chrome][chrome], [firefox][firefox], [edge][edge], [opera][opera]"
+ COMMENT_LINKS="[mascara]:$MASCARA\n[chrome]:$CHROME\n[firefox]:$FIREFOX\n[opera]:$OPERA\n[edge]:$EDGE\n"
+ COMMENT_BODY="$COMMENT_MAIN\n\n$COMMENT_LINKS"
+ JSON_PAYLOAD="{\"body\":\"$COMMENT_BODY\"}"
+ POST_COMMENT_URI="https://api.github.com/repos/metamask/metamask-extension/issues/$CIRCLE_PR_NUMBER/comments"
+ echo "Announcement:\n$COMMENT_BODY"
+ echo "Posting to $POST_COMMENT_URI"
+ curl -d "$JSON_PAYLOAD" -H "Authorization: token $GITHUB_COMMENT_TOKEN" $POST_COMMENT_URI
prep-scss:
docker:
@@ -96,6 +155,22 @@ jobs:
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" }}
+ - restore_cache:
+ key: build-cache-{{ .Revision }}
+ - run:
+ name: Test
+ command: npm run test:e2e
+ - store_artifacts:
+ path: test-artifacts
+ destination: test-artifacts
+
test-unit:
docker:
- image: circleci/node:8-browsers
@@ -200,3 +275,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!'