mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 01:39:44 +01:00
667f4fa5f8
This changeset "reverts" the image version of the CircleCI node image, to work around a chromedriver/Chrome/WebDriver error. We were seeing the following errors: ``` WebDriverError: unknown error: Chrome failed to start: exited abnormally (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) ``` I can surmise that the content changes in the Docker image, from (1) to (2), below did result in this breakage: 1. https://hub.docker.com/layers/circleci/node/10.18-browsers/images/sha256-e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88 2. https://hub.docker.com/layers/circleci/node/10.18-browsers/images/sha256-14d76b9e092ca03543328409223a2d2fba29e3ee5b8274c90b0c98b80005ecf2 Alternative links: 1. circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88 2. circleci/node@sha256:14d76b9e092ca03543328409223a2d2fba29e3ee5b8274c90b0c98b80005ecf2
425 lines
12 KiB
YAML
425 lines
12 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-scss:
|
|
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
|
|
- test-integration-flat-chrome:
|
|
requires:
|
|
- prep-deps
|
|
- prep-scss
|
|
- test-integration-flat-firefox:
|
|
requires:
|
|
- prep-deps
|
|
- prep-scss
|
|
- 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
|
|
- test-integration-flat-chrome
|
|
- test-integration-flat-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-deps
|
|
- 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-scss:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- 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
|
|
- run:
|
|
name: Build for integration tests
|
|
command: yarn test:integration:build
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- ui/app/css/output
|
|
|
|
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:stable
|
|
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:
|
|
# - checkout
|
|
# - attach_workspace:
|
|
# at: .
|
|
# - run:
|
|
# name: storybook:deploy
|
|
# command: 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
|
|
|
|
test-integration-flat-firefox:
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: Install Firefox
|
|
command: ./.circleci/scripts/firefox-install
|
|
- run:
|
|
name: test:integration:flat
|
|
command: yarn test:flat
|
|
|
|
test-integration-flat-chrome:
|
|
environment:
|
|
browsers: '["Chrome"]'
|
|
docker:
|
|
- image: circleci/node@sha256:e16740707de2ebed45c05d507f33ef204902349c7356d720610b5ec6a35d3d88
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: test:integration:flat
|
|
command: yarn test:flat
|
|
|
|
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
|