Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infrastructure cleanup #568

Merged
merged 16 commits into from
Aug 31, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
version: 2

#
# Reusable Snippets!
#
# These are re-used by the various tests below, to avoid repetition.
#
run_install_desired_npm: &run_install_desired_npm
run:
name: Install npm@6.
command: sudo npm install -g npm@6

# These are the steps used for each version of Node which we're testing
# against. Thanks to YAMLs inability to merge arrays (though it is able
# to merge objects), every version of Node must use the exact same steps,
# or these steps would need to be repeated in a version of Node that needs
# something different. Probably best to avoid that, out of principle, though.
common_test_steps: &common_test_steps
steps:
- *run_install_desired_npm
- checkout
- restore_cache:
keys:
# When lock file changes, use increasingly general patterns to restore cache
- npm-v1-{{ .Branch }}-{{ checksum "package-lock.json" }}
- npm-v1-{{ .Branch }}-
- npm-v1-
- run: npm --version
- run: npm ci
- save_cache:
key: npm-v1-{{ .Branch }}-{{ checksum "package-lock.json" }}
paths:
# This should cache the npm cache instead of node_modules, which is needed because
# npm ci actually removes node_modules before installing to guarantee a clean slate.
- ~/.npm
- run: npm run circle

# Important! When adding a new job to `jobs`, make sure to define when it
# executes by also adding it to the `workflows` section below!
jobs:
# Platform tests, each with the same tests but different platform or version.
# The docker tag represents the Node.js version and the full list is available
# at https://hub.docker.com/r/circleci/node/.
Node.js 8:
docker: [{ image: "circleci/node:8" }]
<<: *common_test_steps

Node.js 10:
docker: [{ image: "circleci/node:10" }]
<<: *common_test_steps

# Other tests, unrelated to typical code tests.
Linting:
docker: [{ image: "circleci/node:8" }]
steps:
# (speed) Intentionally omitted, unnecessary, run_install_desired_npm.
- checkout
# (speed) --ignore-scripts to skip unnecessary Lerna build during linting.
- run: npm install --ignore-scripts
- run: npm run lint

ignore_doc_branches: &ignore_doc_branches
filters:
branches:
# If 'docs' is found, with word boundaries on either side, skip.
ignore: /.*?\bdocs\b.*/

workflows:
version: 2
Build and Test:
jobs:
- Node.js 8:
<<: *ignore_doc_branches
- Node.js 10:
<<: *ignore_doc_branches
- Linting:
<<: *ignore_doc_branches
24 changes: 0 additions & 24 deletions .travis.yml

This file was deleted.

4 changes: 1 addition & 3 deletions lerna.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
{
"lerna": "2.11.0",
"packages": [
"packages/*"
],
"version": "independent",
"hoist": true
"version": "independent"
}
Loading