mirror of
https://github.com/vale981/apollo-server
synced 2025-03-05 09:41:40 -05:00
82 lines
2.6 KiB
YAML
82 lines
2.6 KiB
YAML
![]() |
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:
|
||
|
# Due to a bug, npm upgrades from the version of npm that ships with
|
||
|
# Node.js 6 (npm v3.10.10) go poorly and generally causes other problems
|
||
|
# with the environment. Since yarn is already available here we can just
|
||
|
# use that to work-around the issue. It's possible that npm cleanup might
|
||
|
# prevent this from being necessary, but this can be removed once Node 6 is
|
||
|
# no longer being built below.
|
||
|
name: Install npm@latest, but with yarn.
|
||
|
command: sudo yarn global add npm@latest
|
||
|
|
||
|
# 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
|
||
|
- run: npm --version
|
||
|
- run: npm install
|
||
|
- run: npm run travis
|
||
|
|
||
|
# 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 4:
|
||
|
docker: [ { image: 'circleci/node:4' } ]
|
||
|
<<: *common_test_steps
|
||
|
|
||
|
Node.js 6:
|
||
|
docker: [ { image: 'circleci/node:6' } ]
|
||
|
<<: *common_test_steps
|
||
|
|
||
|
Node.js 8:
|
||
|
docker: [ { image: 'circleci/node:8' } ]
|
||
|
<<: *common_test_steps
|
||
|
|
||
|
Node.js 9:
|
||
|
docker: [ { image: 'circleci/node:9' } ]
|
||
|
<<: *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
|
||
|
Docs:
|
||
|
docker: [ { image: 'circleci/node:8' } ]
|
||
|
steps:
|
||
|
# (speed) Intentionally omitted, unnecessary, run_install_desired_npm.
|
||
|
- checkout
|
||
|
# (speed) Ignore scripts to skip the Lerna build stuff for linting.
|
||
|
- run: npm install-test --prefix ./docs
|
||
|
|
||
|
workflows:
|
||
|
version: 2
|
||
|
Build and Test:
|
||
|
jobs:
|
||
|
- Node.js 4
|
||
|
- Node.js 6
|
||
|
- Node.js 8
|
||
|
- Node.js 9
|
||
|
- Linting
|
||
|
- Docs
|