зеркало из https://github.com/mozilla/treeherder.git
96 строки
2.9 KiB
YAML
96 строки
2.9 KiB
YAML
dist: xenial
|
|
# Use the latest Travis images since they are more up to date than the stable release.
|
|
group: edge
|
|
jobs:
|
|
include:
|
|
# Run JS tests
|
|
- language: node_js
|
|
# The Node version here must be kept in sync with that in `package.json`.
|
|
node_js: '12.13.0'
|
|
cache: yarn
|
|
before_install:
|
|
# Try to keep version in sync with `package.json`
|
|
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.19.1
|
|
- export PATH="$HOME/.yarn/bin:$PATH"
|
|
install:
|
|
- yarn install --frozen-lockfile
|
|
script:
|
|
# `yarn build` is tested as part of the Heroku build job
|
|
- yarn lint
|
|
# `yarn lint` only checks the formatting of JS/JSX, this will also check CSS/HTML/JSON/Markdown/YAML.
|
|
- yarn format:check
|
|
- yarn test:coverage
|
|
- yarn codecov
|
|
|
|
# Run Heroku build & release related code
|
|
# This build is configured to catch issues on PRs that would only be detected as part of Heroku's
|
|
# build step when the code has already been merged to master
|
|
# The step ./bin/post_compile requires the output of `yarn build`, thus, we need to build
|
|
# both the JS and Python builds
|
|
- env:
|
|
- NODE_ENV=production YARN_PRODUCTION=true
|
|
# Since we're using Python/pip and Node/yarn use the generic image
|
|
language: generic
|
|
cache:
|
|
directories:
|
|
- $HOME/.cache/yarn
|
|
- $HOME/.cache/pip
|
|
- node_modules
|
|
before_install:
|
|
# XXX: I have not been able to install 3.7.2 to match runtime.txt
|
|
- pyenv global 3.7.1
|
|
- nvm install 12.14.1
|
|
- nvm use 12.14.1
|
|
# Steps to validate versions in use
|
|
- python --version
|
|
- pip --version
|
|
- node --version
|
|
- yarn --version
|
|
install:
|
|
- pip install -r requirements.txt
|
|
- yarn install
|
|
script:
|
|
- yarn heroku-postbuild
|
|
- ./manage.py collectstatic --noinput
|
|
# This generates the revision and does the Brotly/Gzip compression
|
|
- ./bin/post_compile
|
|
|
|
# Run Python tests & linters outside of the Docker containers
|
|
- language: python
|
|
python: '3.7'
|
|
cache: pip
|
|
install:
|
|
- pip install tox
|
|
script:
|
|
- tox
|
|
|
|
# Run Python tests inside of the Docker containers
|
|
- language: shell
|
|
services:
|
|
- docker
|
|
install:
|
|
- pip install tox --user
|
|
- pip install codecov --user
|
|
script:
|
|
- tox -e docker
|
|
- codecov -f coverage.xml
|
|
|
|
# Run Python Selenium tests
|
|
- language: node_js
|
|
services:
|
|
- docker
|
|
# The Node version here must be kept in sync with that in `package.json`.
|
|
node_js: '12.13.0'
|
|
cache: yarn
|
|
install:
|
|
- pip install tox --user
|
|
- pip install codecov --user
|
|
script:
|
|
- tox -e selenium
|
|
- codecov -f coverage.xml
|
|
|
|
notifications:
|
|
email:
|
|
on_success: never
|
|
on_failure: always
|