1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-26 20:39:08 +01:00
metamask-extension/.circleci/config.yml

450 lines
13 KiB
YAML
Raw Normal View History

2018-03-09 21:47:01 +01:00
version: 2
workflows:
version: 2
full_test:
2018-03-09 21:47:01 +01:00
jobs:
- prep-deps-npm
- prep-deps-firefox
2018-03-27 23:16:58 +02:00
- prep-build:
requires:
- prep-deps-npm
2018-05-18 20:50:46 +02:00
- prep-docs:
requires:
- prep-deps-npm
2018-03-09 22:41:18 +01:00
- prep-scss:
2018-03-09 22:43:18 +01:00
requires:
- prep-deps-npm
- test-lint:
2018-03-09 21:47:01 +01:00
requires:
- prep-deps-npm
2018-05-02 20:05:39 +02:00
- test-deps:
requires:
- prep-deps-npm
2018-05-01 21:18:22 +02:00
- test-e2e-chrome:
2018-03-27 22:36:09 +02:00
requires:
- prep-deps-npm
- prep-build
2018-05-01 21:18:22 +02:00
- test-e2e-firefox:
requires:
- prep-deps-npm
2018-05-18 20:09:07 +02:00
- prep-deps-firefox
2018-05-01 21:18:22 +02:00
- prep-build
2018-05-28 18:22:48 +02:00
- test-e2e-beta-chrome:
requires:
- prep-deps-npm
- prep-build
- test-e2e-beta-firefox:
requires:
- prep-deps-npm
- prep-deps-firefox
- prep-build
- test-unit:
requires:
- prep-deps-npm
- test-integration-mascara-chrome:
requires:
- prep-deps-npm
- prep-scss
- test-integration-mascara-firefox:
requires:
- prep-deps-npm
- prep-deps-firefox
- prep-scss
- test-integration-flat-chrome:
requires:
- prep-deps-npm
- prep-scss
- test-integration-flat-firefox:
requires:
- prep-deps-npm
- prep-deps-firefox
- prep-scss
- all-tests-pass:
requires:
- test-lint
- test-unit
2018-05-01 21:18:22 +02:00
- test-e2e-chrome
- test-e2e-firefox
2018-05-28 18:22:48 +02:00
- test-e2e-beta-chrome
- test-e2e-beta-firefox
- test-integration-mascara-chrome
- test-integration-mascara-firefox
- test-integration-flat-chrome
- test-integration-flat-firefox
- job-screens:
requires:
- prep-deps-npm
- prep-build
- all-tests-pass
- job-publish-prerelease:
requires:
- prep-deps-npm
- prep-build
- job-screens
- all-tests-pass
2018-05-18 20:29:10 +02:00
- job-publish-release:
filters:
branches:
only: master
requires:
- prep-deps-npm
- prep-build
- prep-docs
2018-05-18 20:29:10 +02:00
- job-screens
- all-tests-pass
2018-03-09 21:47:01 +01:00
2018-03-09 21:38:28 +01:00
jobs:
prep-deps-npm:
2018-03-09 21:38:28 +01:00
docker:
- image: circleci/node:8.11.3-browsers
2018-03-09 21:38:28 +01:00
steps:
- checkout
- restore_cache:
keys:
2018-07-21 18:59:22 +02:00
- v1.0-dependency-cache-{{ checksum "package-lock.json" }}
# fallback to using the latest cache if no exact match is found
2018-07-21 18:59:22 +02:00
- v1.0-dependency-cache-
2018-03-09 21:38:28 +01:00
- run:
2018-07-06 21:33:53 +02:00
name: Install npm 6 + deps via npm
2018-07-06 06:32:12 +02:00
command: |
2018-07-21 19:47:10 +02:00
sudo npm install -g npm@6.1.0 && npm install --no-save
2018-03-09 21:38:28 +01:00
- save_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
paths:
2018-07-06 06:32:12 +02:00
- node_modules
prep-deps-firefox:
docker:
- image: circleci/node:8.11.3-browsers
steps:
- checkout
2018-07-06 22:33:39 +02:00
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-firefox-
- run:
name: Download Firefox If needed
command: ./.circleci/scripts/firefox-download.sh
2018-03-09 23:58:02 +01:00
- save_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-firefox-
2018-07-06 22:31:03 +02:00
paths:
- firefox
2018-03-09 23:58:02 +01:00
2018-03-27 23:16:58 +02:00
prep-build:
docker:
- image: circleci/node:8.11.3-browsers
2018-03-27 23:16:58 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-03-27 23:16:58 +02:00
- run:
name: build:dist
command: npm run dist
- run:
name: build:debug
command: find dist/ -type f -exec md5sum {} \; | sort -k 2
- save_cache:
2018-07-19 14:11:09 +02:00
key: build-cache-{{ .Revision }}
2018-03-27 23:16:58 +02:00
paths:
- dist
- builds
2018-05-18 20:50:46 +02:00
prep-docs:
docker:
- image: circleci/node:8.11.3-browsers
2018-05-18 20:50:46 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-05-18 20:50:46 +02:00
- run:
name: build:dist
command: npm run doc
- save_cache:
2018-07-19 14:11:09 +02:00
key: docs-cache-{{ .Revision }}
2018-05-18 20:50:46 +02:00
paths:
- docs/jsdoc
prep-scss:
docker:
- image: circleci/node:8.11.3-browsers
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: Get Scss Cache key
2018-03-09 22:50:57 +01:00
# this allows us to checksum against a whole directory
2018-03-10 00:30:58 +01:00
command: find ui/app/css -type f -exec md5sum {} \; | sort -k 2 > scss_checksum
- run:
name: Build for integration tests
2018-03-09 22:50:57 +01:00
command: npm run test:integration:build
- save_cache:
2018-07-19 14:11:09 +02:00
key: scss-cache-{{ checksum "scss_checksum" }}
paths:
- ui/app/css/output
test-lint:
2018-03-09 21:38:28 +01:00
docker:
- image: circleci/node:8.11.3-browsers
2018-03-09 21:38:28 +01:00
steps:
- checkout
2018-03-09 22:04:53 +01:00
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-03-09 21:38:28 +01:00
- run:
name: Test
command: npm run lint
2018-05-02 20:05:39 +02:00
test-deps:
docker:
- image: circleci/node:8.11.3-browsers
2018-05-02 20:05:39 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-05-02 20:05:39 +02:00
- run:
name: Test
command: npx nsp check
2018-05-01 21:18:22 +02:00
test-e2e-chrome:
2018-03-27 22:36:09 +02:00
docker:
- image: circleci/node:8.11.3-browsers
2018-03-27 22:36:09 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-03-27 23:16:58 +02:00
- restore_cache:
key: build-cache-{{ .Revision }}
2018-03-27 22:36:09 +02:00
- run:
2018-05-28 18:22:48 +02:00
name: test:e2e:chrome
2018-05-01 21:18:22 +02:00
command: npm run test:e2e:chrome
- store_artifacts:
path: test-artifacts
destination: test-artifacts
2018-05-18 20:09:07 +02:00
2018-05-01 21:18:22 +02:00
test-e2e-firefox:
docker:
- image: circleci/node:8.11.3-browsers
2018-05-01 21:18:22 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-firefox-
2018-05-01 21:18:22 +02:00
- run:
name: Install firefox
command: ./.circleci/scripts/firefox-install.sh
2018-07-06 23:13:54 +02:00
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-07-06 23:32:06 +02:00
- restore_cache:
key: build-cache-{{ .Revision }}
2018-05-01 21:18:22 +02:00
- run:
name: test:e2e:firefox
command: npm run test:e2e:firefox
2018-03-29 22:59:39 +02:00
- store_artifacts:
path: test-artifacts
destination: test-artifacts
2018-03-27 22:36:09 +02:00
2018-05-28 18:22:48 +02:00
test-e2e-beta-chrome:
docker:
- image: circleci/node:8.11.3-browsers
2018-05-28 18:22:48 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-05-28 18:22:48 +02:00
- restore_cache:
key: build-cache-{{ .Revision }}
- run:
name: test:e2e:chrome:beta
command: npm run test:e2e:chrome:beta
- store_artifacts:
path: test-artifacts
destination: test-artifacts
test-e2e-beta-firefox:
docker:
- image: circleci/node:8.11.3-browsers
2018-05-28 18:22:48 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-firefox-
2018-05-28 18:22:48 +02:00
- run:
name: Install firefox
command: ./.circleci/scripts/firefox-install.sh
2018-05-28 18:22:48 +02:00
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-05-28 18:22:48 +02:00
- restore_cache:
key: build-cache-{{ .Revision }}
- run:
name: test:e2e:firefox:beta
command: npm run test:e2e:firefox:beta
- store_artifacts:
path: test-artifacts
destination: test-artifacts
job-screens:
2018-03-30 10:01:16 +02:00
docker:
- image: circleci/node:8.11.3-browsers
2018-03-30 10:01:16 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-03-30 10:01:16 +02:00
- restore_cache:
2018-07-19 14:11:09 +02:00
key: build-cache-{{ .Revision }}
2018-03-30 10:01:16 +02:00
- run:
name: Test
command: npm run test:screens
- save_cache:
2018-07-19 14:11:09 +02:00
key: job-screens-{{ .Revision }}
paths:
- test-artifacts
job-publish-prerelease:
docker:
- image: circleci/node:8.11.3-browsers
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- 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
2018-03-30 10:01:16 +02:00
- store_artifacts:
path: test-artifacts
destination: test-artifacts
- run:
name: build:announce
command: ./development/metamaskbot-build-announce.js
2018-05-18 20:29:10 +02:00
job-publish-release:
docker:
- image: circleci/node:8.11.3-browsers
2018-05-18 20:29:10 +02:00
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
2018-05-18 20:29:10 +02:00
- restore_cache:
key: build-cache-{{ .Revision }}
- restore_cache:
key: docs-cache-{{ .Revision }}
2018-05-18 20:29:10 +02:00
- restore_cache:
key: job-screens-{{ .Revision }}
- run:
name: sentry sourcemaps upload
command: npm run sentry:publish
- run:
name: github gh-pages docs publish
command: >
git config user.name metamaskbot
git config user.email admin@metamask.io
gh-pages -d docs/jsdocs
2018-03-30 10:01:16 +02:00
test-unit:
docker:
- image: circleci/node:8.11.3-browsers
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: test:coverage
command: npm run test:coverage
test-integration-flat-firefox:
environment:
2018-03-10 20:13:27 +01:00
browsers: '["Firefox"]'
docker:
- image: circleci/node:8.11.3-browsers
steps:
- checkout
2018-03-09 23:58:02 +01:00
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-firefox-
- run:
name: Install firefox
command: ./.circleci/scripts/firefox-install.sh
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: Get Scss Cache key
# this allows us to checksum against a whole directory
2018-03-10 00:30:58 +01:00
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-flat-chrome:
environment:
2018-03-10 20:13:27 +01:00
browsers: '["Chrome"]'
docker:
- image: circleci/node:8.11.3-browsers
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-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-firefox:
environment:
2018-03-10 20:13:27 +01:00
browsers: '["Firefox"]'
docker:
- image: circleci/node:8.11.3-browsers
steps:
- checkout
2018-03-09 23:58:02 +01:00
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-firefox-
- run:
name: Install firefox
command: ./.circleci/scripts/firefox-install.sh
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-dependency-cache-{{ checksum "package-lock.json" }}
- run:
name: Get Scss Cache key
# this allows us to checksum against a whole directory
2018-03-10 00:30:58 +01:00
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
test-integration-mascara-chrome:
environment:
2018-03-10 20:13:27 +01:00
browsers: '["Chrome"]'
docker:
- image: circleci/node:8.11.3-browsers
steps:
- checkout
- restore_cache:
2018-07-21 18:59:22 +02:00
key: v1.0-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
all-tests-pass:
docker:
- image: circleci/node:8.11.3-browsers
steps:
- run:
name: All Tests Passed
2018-07-19 14:11:09 +02:00
command: echo 'weew - everything passed!'