diff options
Diffstat (limited to '.circleci/config.yml')
-rw-r--r-- | .circleci/config.yml | 83 |
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!' |