treeherder/.travis.yml

65 строки
2.3 KiB
YAML
Исходник Обычный вид История

dist: xenial
# Use the latest Travis images since they are more up to date than the stable release.
group: edge
services:
- docker
matrix:
include:
- env: js-tests
language: node_js
# The Node version here must be kept in sync with that in `package.json`.
node_js: '11'
cache:
directories:
- node_modules
install:
- yarn install --frozen-lockfile
script:
Bug 1364894 - Upgrade from Neutrino 4 to 9 (#4216) Neutrino controls our frontend linting, transpilation, source-maps, testing, dev-server and optimisation of production builds. Highlights of the upgrade are: * Major version updates to the individual tools within (such as webpack, Babel and ESLint), significantly improving performance, fixing transpilation/minification correctness bugs, adding support for newer ECMAScript features, and increasing linter coverage. * Hot reloading in the dev server now works for all entry-points and not just the jobs view, shortening the feedback cycle. * Reduced bundle size due to webpack 4's tree shaking, scope hoisting, automatic shared/vendor code chunk splitting (no need for the manually maintained 'vendor' list). * CSS is now extracted out of JS, which improves performance, reduces bundle size and prevents the initial white flash of un-styled content. * Support for dynamic imports/code splitting (needed for bug 1502192). * Support for Jest via a new Jest preset (unblocks bug 1364045). * Support for public class field declarations (unblocks bug 1480166). * Improved source-maps (increases the quality of production exception trace-backs and fixes several debugger breakpoint bugs). * Reduced amount of custom configuration required for our fairly complex frontend needs, reducing maintenance burden and allowing for easier future Neutrino upgrades. In addition this PR: * Fixes the WhiteNoise `immutable_file_test()` regex, so that it now correctly enables browser caching of images, fonts and source maps. * Enables webpack-dev-server's overlay feature, which displays any compilation errors in the browser, saving having to switch back to the console (this can be enabled for warnings too if desired). * Enables webpack-dev-server's automatic browser-opening feature, which saves having to manually navigate to `localhost:5000` after running `yarn start`. * Switches Karma tests to run Firefox in headless mode, reducing the workflow disruption when running `yarn test`. * Uses the new webpack `performance` option to enable maximum asset file size thresholds, to help prevent bundle-size regressions. * Rewrites the `package.json` script commands so that they now work correctly on Windows, even when setting environment variables. Performance comparison: * Local `yarn build`: - Cached: 2m34s -> 23s - Uncached: 2m34s -> 58s * Local `yarn start`: - Cached: 34.5s -> 13.6s - Uncached: 34.5s -> 31.3s * Local `yarn test` - Cached: 61.5s -> 19.8s - Uncached: 61.5s -> 22.0s * Local `yarn lint` - Cached: 3.8s -> 1.8s - Uncached: 13.7s -> 13.4s * Travis end-to-end time: 9 minutes -> 6 minutes * Heroku deploy end-to-end time: 14 minutes -> 9 minutes
2018-11-02 21:48:28 +03:00
# `yarn build` is tested as part of the Selenium 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
- env: python-linters
language: minimal
install:
- docker-compose build
script:
- docker-compose run backend ./runtests.sh
- env: python-tests-main
language: minimal
install:
- docker-compose build
script:
# Several security features in settings.py (eg setting HSTS headers) are conditional on
# 'https://' being in the site URL. In addition, we override the test environment's debug
# value so the tests pass. The real environment variable will be checked during deployment.
- docker-compose run -e SITE_URL=https://treeherder.dev -e TREEHERDER_DEBUG=False backend python -bb ./manage.py check --deploy --fail-level WARNING
# Using `-bb` mode to surface BytesWarnings: https://docs.python.org/3.7/using/cmdline.html#cmdoption-b
- docker-compose run backend python -bb -m pytest tests/ --runslow --ignore=tests/selenium/
- env: python-tests-selenium
language: node_js
# The Node version here must be kept in sync with that in `package.json`.
node_js: '11'
cache:
directories:
- node_modules
before_install:
- docker-compose build
install:
- yarn install
before_script:
# Run in `before_script` to prevent the Selenium tests from running if the UI build fails.
- yarn build
script:
# Using `-bb` mode to surface BytesWarnings: https://docs.python.org/3.7/using/cmdline.html#cmdoption-b
- docker-compose run backend python -bb -m pytest tests/selenium/
2013-06-27 20:57:44 +04:00
notifications:
email:
on_success: never
on_failure: always