1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-10-22 11:22:43 +02:00
metamask-extension/.circleci/config.yml
Mark Stacey 754f98aea2
Fix npm-audit script (#6908)
The npm audit script was auditing all dependencies, then filtering the
results to just the advisories concerning production dependencies. This
was done by checking the boolean `dev` and `optional` properties of each
`findings` entry in each advisory.

The `dev` and `optional` properties are now missing, which is resulting
in dev advisories being mistakenly identified as affecting production.

This check has been removed, and instead the `--production` flag is used
when calling `npm audit`. This accomplishes the same goal without
relying as much upon the audit output format.

The `--production` flag was added in `npm` `v6.10.0`, so `npm` has been
updated to the current latest stable (`v6.10.2`) for the `test-deps`
job. It was also updated on the `prep-deps-npm` job to ensure
consistency in behaviour. The other jobs only use `npm run` which hasn't
changed substantially in some time, so compatibility isn't really a
concern for those.

`audit.json` has also been added to `.gitignore`. It was accidentally
checked in once while working on this branch.
2019-07-24 19:54:16 -03:00

325 lines
7.8 KiB
YAML

version: 2
workflows:
version: 2
test_and_release:
jobs:
- create_release_pull_request:
filters:
branches:
only:
- /^Version-v(\d+)[.](\d+)[.](\d+)/
- prep-deps-npm
- prep-build:
requires:
- prep-deps-npm
- create_github_release:
requires:
- prep-build
filters:
branches:
only:
- develop
# - prep-docs:
# requires:
# - prep-deps-npm
- prep-scss:
requires:
- prep-deps-npm
- test-lint:
requires:
- prep-deps-npm
- test-deps:
requires:
- prep-deps-npm
- test-e2e-chrome:
requires:
- prep-deps-npm
- test-e2e-firefox:
requires:
- prep-deps-npm
- test-unit:
requires:
- prep-deps-npm
- test-mozilla-lint:
requires:
- prep-deps-npm
- prep-build
- test-integration-flat-chrome:
requires:
- prep-deps-npm
- prep-scss
- test-integration-flat-firefox:
requires:
- prep-deps-npm
- prep-scss
- all-tests-pass:
requires:
- test-lint
- test-unit
- test-mozilla-lint
- test-e2e-chrome
- test-e2e-firefox
- test-integration-flat-chrome
- test-integration-flat-firefox
- job-publish-prerelease:
requires:
- prep-deps-npm
- prep-build
- all-tests-pass
- job-publish-release:
filters:
branches:
only: master
requires:
- prep-deps-npm
- prep-build
# - prep-docs
- all-tests-pass
jobs:
create_release_pull_request:
docker:
- image: circleci/node:8.15.1-browsers
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-npm:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- run:
name: Update npm
command: sudo npm install -g npm@6.10.2
- run:
name: Install deps via npm
command: |
npm ci
- persist_to_workspace:
root: .
paths:
- node_modules
prep-build:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: build:dist
command: npm run dist
- run:
name: build:debug
command: find dist/ -type f -exec md5sum {} \; | sort -k 2
- persist_to_workspace:
root: .
paths:
- dist
- builds
prep-docs:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: build:dist
command: npm run doc
- persist_to_workspace:
root: .
paths:
- docs/jsdocs
prep-scss:
docker:
- image: circleci/node:10.16-browsers
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: npm run test:integration:build
- persist_to_workspace:
root: .
paths:
- ui/app/css/output
test-lint:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: Test
command: npm run lint
test-deps:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: Update npm
command: sudo npm install -g npm@6.10.2
- run:
name: npm audit
command: .circleci/scripts/npm-audit
test-e2e-chrome:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: test:e2e:chrome
command: npm run build:test && npm run test:e2e:chrome
no_output_timeout: 20m
- store_artifacts:
path: test-artifacts
destination: test-artifacts
test-e2e-firefox:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- run:
name: Install Firefox
command: ./.circleci/scripts/firefox-install
- attach_workspace:
at: .
- run:
name: test:e2e:firefox
command: npm run build:test && npm run test:e2e:chrome
no_output_timeout: 20m
- store_artifacts:
path: test-artifacts
destination: test-artifacts
job-publish-prerelease:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- store_artifacts:
path: dist/sourcemaps
destination: builds/sourcemaps
- store_artifacts:
path: builds
destination: builds
- store_artifacts:
path: test-artifacts
destination: test-artifacts
- run:
name: build:announce
command: ./development/metamaskbot-build-announce.js
job-publish-release:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: sentry sourcemaps upload
command: npm run sentry:publish
# - run:
# name: github gh-pages docs publish
# command: >
# git config --global user.name "metamaskbot" &&
# git config --global user.email "admin@metamask.io" &&
# npm run publish-docs
test-unit:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: test:coverage
command: npm run test:coverage
test-mozilla-lint:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: test:mozilla-lint
command: NODE_OPTIONS=--max_old_space_size=3072 npm run mozilla-lint
test-integration-flat-firefox:
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: Install Firefox
command: ./.circleci/scripts/firefox-install
- run:
name: test:integration:flat
command: npm run test:flat
test-integration-flat-chrome:
environment:
browsers: '["Chrome"]'
docker:
- image: circleci/node:10.16-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: test:integration:flat
command: npm run test:flat
all-tests-pass:
docker:
- image: circleci/node:10.16-browsers
steps:
- run:
name: All Tests Passed
command: echo 'weew - everything passed!'
create_github_release:
docker:
- image: circleci/node:8.15.1-browsers
steps:
- checkout
- attach_workspace:
at: .
- run:
name: Create GitHub release
command: |
.circleci/scripts/release-create-gh-release