mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
2856af2336
The remaining integration tests are all covered by e2e tests, so they're no longer needed. All associated scripts, fixtures, and dependencies have also been removed.
390 lines
11 KiB
YAML
390 lines
11 KiB
YAML
version: 2.1
|
|
|
|
workflows:
|
|
test_and_release:
|
|
jobs:
|
|
- create_release_pull_request:
|
|
filters:
|
|
branches:
|
|
only:
|
|
- /^Version-v(\d+)[.](\d+)[.](\d+)/
|
|
- prep-deps
|
|
- test-deps
|
|
- prep-build:
|
|
requires:
|
|
- prep-deps
|
|
- prep-build-test:
|
|
requires:
|
|
- prep-deps
|
|
- prep-build-storybook:
|
|
requires:
|
|
- prep-deps
|
|
- test-lint:
|
|
requires:
|
|
- prep-deps
|
|
- test-lint-shellcheck
|
|
- test-lint-lockfile:
|
|
requires:
|
|
- prep-deps
|
|
- test-e2e-chrome:
|
|
requires:
|
|
- prep-build-test
|
|
- test-e2e-firefox:
|
|
requires:
|
|
- prep-build-test
|
|
- test-unit:
|
|
requires:
|
|
- prep-deps
|
|
- test-unit-global:
|
|
requires:
|
|
- prep-deps
|
|
- test-mozilla-lint:
|
|
requires:
|
|
- prep-deps
|
|
- prep-build
|
|
- all-tests-pass:
|
|
requires:
|
|
- test-lint
|
|
- test-lint-shellcheck
|
|
- test-lint-lockfile
|
|
- test-unit
|
|
- test-unit-global
|
|
- test-mozilla-lint
|
|
- test-e2e-chrome
|
|
- test-e2e-firefox
|
|
- benchmark:
|
|
requires:
|
|
- prep-build-test
|
|
- job-publish-prerelease:
|
|
requires:
|
|
- prep-deps
|
|
- prep-build
|
|
- benchmark
|
|
- all-tests-pass
|
|
- job-publish-release:
|
|
filters:
|
|
branches:
|
|
only: master
|
|
requires:
|
|
- prep-deps
|
|
- prep-build
|
|
- all-tests-pass
|
|
- job-publish-storybook:
|
|
filters:
|
|
branches:
|
|
only: develop
|
|
requires:
|
|
- prep-build-storybook
|
|
- coveralls-upload:
|
|
requires:
|
|
- test-unit
|
|
|
|
jobs:
|
|
create_release_pull_request:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Create GitHub Pull Request for version
|
|
command: |
|
|
.circleci/scripts/release-bump-changelog-version
|
|
.circleci/scripts/release-bump-manifest-version
|
|
.circleci/scripts/release-create-release-pr
|
|
|
|
prep-deps:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Install deps
|
|
command: |
|
|
.circleci/scripts/deps-install.sh
|
|
- run:
|
|
name: Collect yarn install HAR logs
|
|
command: |
|
|
.circleci/scripts/collect-har-artifact.sh
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- node_modules
|
|
- build-artifacts
|
|
|
|
prep-build:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: build:dist
|
|
command: yarn dist
|
|
- run:
|
|
name: build:debug
|
|
command: find dist/ -type f -exec md5sum {} \; | sort -k 2
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- dist
|
|
- builds
|
|
|
|
prep-build-test:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: Build extension for testing
|
|
command: yarn build:test
|
|
- run:
|
|
name: Move test build to 'dist-test' to avoid conflict with production build
|
|
command: mv ./dist ./dist-test
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- dist-test
|
|
|
|
prep-build-storybook:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: Build Storybook
|
|
command: yarn storybook:build
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- .out
|
|
|
|
test-lint:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: Lint
|
|
command: yarn lint
|
|
- run:
|
|
name: Verify locales
|
|
command: yarn verify-locales --quiet
|
|
|
|
test-lint-shellcheck:
|
|
docker:
|
|
- image: koalaman/shellcheck-alpine@sha256:169a51b086af0ab181e32801c15deb78944bb433d4f2c0a21cc30d4e60547065
|
|
steps:
|
|
- checkout
|
|
- run: apk add --no-cache bash jq yarn
|
|
- run:
|
|
name: Shellcheck Lint
|
|
command: yarn lint:shellcheck
|
|
|
|
test-lint-lockfile:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: lockfile-lint
|
|
command: yarn lint:lockfile
|
|
|
|
test-deps:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: yarn audit
|
|
command: .circleci/scripts/yarn-audit
|
|
|
|
test-e2e-chrome:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: Move test build to dist
|
|
command: mv ./dist-test ./dist
|
|
- run:
|
|
name: test:e2e:chrome
|
|
command: yarn test:e2e:chrome
|
|
no_output_timeout: 20m
|
|
- store_artifacts:
|
|
path: test-artifacts
|
|
destination: test-artifacts
|
|
|
|
test-e2e-firefox:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Install Firefox
|
|
command: ./.circleci/scripts/firefox-install
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: Move test build to dist
|
|
command: mv ./dist-test ./dist
|
|
- run:
|
|
name: test:e2e:firefox
|
|
command: yarn test:e2e:firefox
|
|
no_output_timeout: 20m
|
|
- store_artifacts:
|
|
path: test-artifacts
|
|
destination: test-artifacts
|
|
|
|
benchmark:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: Move test build to dist
|
|
command: mv ./dist-test ./dist
|
|
- run:
|
|
name: Run page load benchmark
|
|
command: yarn benchmark:chrome --out test-artifacts/chrome/benchmark/pageload.json
|
|
- store_artifacts:
|
|
path: test-artifacts
|
|
destination: test-artifacts
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- test-artifacts
|
|
|
|
job-publish-prerelease:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: build:source-map-explorer
|
|
command: ./development/source-map-explorer.sh
|
|
- store_artifacts:
|
|
path: dist/sourcemaps
|
|
destination: builds/sourcemaps
|
|
- store_artifacts:
|
|
path: builds
|
|
destination: builds
|
|
- store_artifacts:
|
|
path: test-artifacts
|
|
destination: test-artifacts
|
|
# important: generate sesify viz AFTER uploading builds as artifacts
|
|
- run:
|
|
name: build:sesify-viz
|
|
command: ./.circleci/scripts/create-sesify-viz
|
|
- store_artifacts:
|
|
path: build-artifacts
|
|
destination: build-artifacts
|
|
- run:
|
|
name: build:announce
|
|
command: ./development/metamaskbot-build-announce.js
|
|
|
|
job-publish-release:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: sentry sourcemaps upload
|
|
command: yarn sentry:publish
|
|
- run:
|
|
name: Create GitHub release
|
|
command: |
|
|
.circleci/scripts/release-create-gh-release
|
|
- run:
|
|
name: Create GitHub Pull Request to sync master with develop
|
|
command: .circleci/scripts/release-create-master-pr
|
|
|
|
job-publish-storybook:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- add_ssh_keys:
|
|
fingerprints:
|
|
- "5e:a3:2d:35:b6:25:b5:87:b1:41:11:0d:77:50:96:73"
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: storybook:deploy
|
|
command: |
|
|
git remote add storybook git@github.com:MetaMask/metamask-storybook.git
|
|
yarn storybook:deploy
|
|
|
|
test-unit:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: test:coverage
|
|
command: yarn test:coverage
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- .nyc_output
|
|
- coverage
|
|
test-unit-global:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: test:unit:global
|
|
command: yarn test:unit:global
|
|
test-mozilla-lint:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: test:mozilla-lint
|
|
command: NODE_OPTIONS=--max_old_space_size=3072 yarn mozilla-lint
|
|
|
|
all-tests-pass:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- run:
|
|
name: All Tests Passed
|
|
command: echo 'weew - everything passed!'
|
|
|
|
coveralls-upload:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: Coveralls upload
|
|
command: yarn test:coveralls-upload
|