chore: tidy up and de-duplicate Travis CI config (#5716)

This commit is contained in:
munrocket 2020-04-23 12:29:37 +04:00 committed by GitHub
parent 9d297f0827
commit ddb8ba1baf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 48 deletions

View File

@ -1,62 +1,46 @@
language: node_js
os: linux
dist: trusty
addons:
apt:
packages:
# This is required to run new chrome on old trusty
- libnss3
# Needed for realpath which we use in npm run test-install
- realpath
notifications:
email: false
cache:
directories:
- node_modules
services: xvfb
jobs:
include:
- os: "osx"
node_js: "10.19.0"
env:
- CHROMIUM=true
before_install:
# populate .local-firefox for launcher tests
- PUPPETEER_PRODUCT=firefox npm install
script:
- ls .local-chromium .local-firefox
- npm run tsc
- npm run unit
- os: "windows"
node_js: "10.19.0"
env:
- CHROMIUM=true
before_install:
# populate .local-firefox for launcher tests
- PUPPETEER_PRODUCT=firefox npm install
script:
- ls .local-chromium .local-firefox
- npm run tsc
- travis_retry npm run unit
- node_js: "10.19.0"
dist: trusty
env:
- CHROMIUM=true
before_install:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
# populate .local-firefox for launcher tests
- PUPPETEER_PRODUCT=firefox npm install
script:
- npm run test-install
- travis/chromium.sh
- node_js: "10.19.0"
dist: trusty
env:
- FIREFOX=true
before_install:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
# install step will add .local-chromium for launcher tests
- PUPPETEER_PRODUCT=firefox npm install
script:
- "npm run funit"
- npm run funit
notifications:
email: false

View File

@ -187,33 +187,20 @@ export CHROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox
> 👋 We run our tests for Puppeteer on Travis CI - see our [`.travis.yml`](https://github.com/puppeteer/puppeteer/blob/master/.travis.yml) for reference.
Tips-n-tricks:
- The `libnss3` package must be installed in order to run Chromium on Ubuntu Trusty
- [user namespace cloning](http://man7.org/linux/man-pages/man7/user_namespaces.7.html) should be enabled to support
proper sandboxing
- [xvfb](https://en.wikipedia.org/wiki/Xvfb) should be launched in order to run Chromium in non-headless mode (e.g. to test Chrome Extensions)
- [xvfb](https://en.wikipedia.org/wiki/Xvfb) service should be launched in order to run Chromium in non-headless mode
- Runs on Xenial Linux on Travis by default
- Runs `npm install` by default
- `node_modules` is cached by default
To sum up, your `.travis.yml` might look like this:
`.travis.yml` might look like this:
```yml
language: node_js
dist: trusty
addons:
apt:
packages:
# This is required to run new chrome on old trusty
- libnss3
notifications:
email: false
cache:
directories:
- node_modules
# allow headful tests
before_install:
# Enable user namespace cloning
- "sysctl kernel.unprivileged_userns_clone=1"
# Launch XVFB
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
node_js: node
services: xvfb
script:
- npm run test
```
## Running Puppeteer on CircleCI