| 1 | # Parallel Travis jobs for Oil. We delegate most logic to
|
| 2 | # services/toil-worker.sh.
|
| 3 |
|
| 4 | # https://github.com/travis-ci/travis-ci/issues/1147
|
| 5 | # Might want to turn this on.
|
| 6 |
|
| 7 | #branches:
|
| 8 | # only:
|
| 9 | # - master
|
| 10 |
|
| 11 |
|
| 12 | # Every job uses this deploy step.
|
| 13 | _publish_html: &publish_html
|
| 14 | deploy:
|
| 15 | # https://docs.travis-ci.com/user/deployment#uploading-files-and-skip_cleanup
|
| 16 | # otherwise we can't zip up _tmp/toil, etc.
|
| 17 | - provider: script
|
| 18 | skip_cleanup: true
|
| 19 | script: services/travis.sh publish-html
|
| 20 | on:
|
| 21 | branch: master
|
| 22 | # duplicate block for testing on dev branches
|
| 23 | - provider: script
|
| 24 | skip_cleanup: true
|
| 25 | script: services/travis.sh publish-html
|
| 26 | on:
|
| 27 | branch: dev/andy-27
|
| 28 | # duplicate block for testing on dev branches
|
| 29 | - provider: script
|
| 30 | skip_cleanup: true
|
| 31 | script: services/travis.sh publish-html
|
| 32 | on:
|
| 33 | branch: dev/andy-vb1
|
| 34 |
|
| 35 | jobs:
|
| 36 | include:
|
| 37 | # Job for testing
|
| 38 | #- name: dummy
|
| 39 | # # Travis's default is Ruby, but we don't need it.
|
| 40 | # language: minimal
|
| 41 | # script: services/toil-worker.sh run-dummy
|
| 42 |
|
| 43 | # <<: *publish_html
|
| 44 |
|
| 45 | # Make a tarball to build oil.ovm.
|
| 46 | - name: ovm-tarball
|
| 47 | # Travis's default is Ruby, but we don't need it.
|
| 48 | language: minimal
|
| 49 | cache:
|
| 50 | directories:
|
| 51 | - _devbuild/cpython-full # Python-2.x/ in the repo doesn't change much
|
| 52 | - _deps/ # re2c doesn't change much
|
| 53 |
|
| 54 | script: services/toil-worker.sh run-ovm-tarball
|
| 55 |
|
| 56 | # For building Python extensions like posix_.so and yajl.so. We import
|
| 57 | # them to build a tarball.
|
| 58 | addons:
|
| 59 | apt:
|
| 60 | packages:
|
| 61 | - python-dev
|
| 62 |
|
| 63 | <<: *publish_html
|
| 64 |
|
| 65 | # Run app unit tests against _bin/osh. Similar to ovm-tarball.
|
| 66 | #- name: app-tests
|
| 67 | # # Travis's default is Ruby, but we don't need it.
|
| 68 | # language: minimal
|
| 69 | # cache:
|
| 70 | # directories:
|
| 71 | # - _devbuild/cpython-full # Python-2.x/ in the repo doesn't change much
|
| 72 | # - _deps/ # re2c doesn't change much
|
| 73 |
|
| 74 | # script: services/toil-worker.sh run-app-tests
|
| 75 |
|
| 76 | # # For building Python extensions like posix_.so and yajl.so. We import
|
| 77 | # # them to build a tarball.
|
| 78 | # addons:
|
| 79 | # apt:
|
| 80 | # packages:
|
| 81 | # - python-dev
|
| 82 |
|
| 83 | # <<: *publish_html
|
| 84 |
|
| 85 | # Developer build that can run all spec tests.
|
| 86 | #- name: dev-all-nix
|
| 87 | # language: nix
|
| 88 | # script: services/toil-worker.sh run-dev-all-nix
|
| 89 |
|
| 90 | # <<: *publish_html
|
| 91 |
|
| 92 | # Low-dependency developer build. Spec tests broken because we don't have
|
| 93 | # exact versions of shells.
|
| 94 | - name: dev-minimal
|
| 95 | # https://docs.travis-ci.com/user/reference/xenial/#python-support
|
| 96 | # It says Xenial has Python 2.7, 3.6, and 3.7 (?)
|
| 97 | # We're not using language: python because that creates a virtualenv, which is
|
| 98 | # specific to a Python version. MyPy needs both in the same environment.
|
| 99 | dist: xenial
|
| 100 | language: minimal
|
| 101 | cache:
|
| 102 | apt: true
|
| 103 | pip: true
|
| 104 | directories:
|
| 105 | - _deps/ # re2c doesn't change much
|
| 106 |
|
| 107 | # Enable this to quickly test the deploy step at the end
|
| 108 | env:
|
| 109 | - TRAVIS_SKIP=
|
| 110 |
|
| 111 | addons:
|
| 112 | apt:
|
| 113 | packages:
|
| 114 | # build/dev.sh ubuntu-deps
|
| 115 | - python-dev
|
| 116 | - gawk
|
| 117 | - libreadline-dev
|
| 118 | # test/spec.sh install-shells
|
| 119 | - busybox-static
|
| 120 | - mksh
|
| 121 | - zsh
|
| 122 | # since we're not using language: python
|
| 123 | - python-pip
|
| 124 | - python3-setuptools
|
| 125 | - python3-pip
|
| 126 |
|
| 127 | install:
|
| 128 | - pip install --user flake8 typing
|
| 129 | # MyPy requires Python 3, but Oil requires Python 2.
|
| 130 | - pip3 install --user mypy
|
| 131 | # After this symlink is made, build/dev-shell.sh will modify $PATH to include it
|
| 132 | - test/spec.sh link-busybox-ash
|
| 133 |
|
| 134 | script:
|
| 135 | - services/toil-worker.sh run-dev-minimal
|
| 136 |
|
| 137 | notifications:
|
| 138 | on_success: change
|
| 139 | on_failure: change # `always` will be the setting once code changes slow down
|
| 140 |
|
| 141 | <<: *publish_html
|
| 142 |
|
| 143 | - name: cpp
|
| 144 | dist: bionic
|
| 145 | cache:
|
| 146 | apt: true
|
| 147 | pip: true
|
| 148 | directories:
|
| 149 | - _deps/ # re2c doesn't change much
|
| 150 |
|
| 151 | # Enable this to quickly test the deploy step at the end
|
| 152 | env:
|
| 153 | - TRAVIS_SKIP=
|
| 154 |
|
| 155 | addons:
|
| 156 | apt:
|
| 157 | packages:
|
| 158 | - python3-pip
|
| 159 | # for MyPy virtualenv
|
| 160 | - python3-venv
|
| 161 | - ninja-build
|
| 162 | # for stable benchmarks
|
| 163 | - valgrind
|
| 164 | # the shell benchmarks compare shells
|
| 165 | - busybox-static
|
| 166 | - mksh
|
| 167 | - zsh
|
| 168 |
|
| 169 | script:
|
| 170 | - services/toil-worker.sh run-cpp
|
| 171 |
|
| 172 | <<: *publish_html
|
| 173 |
|
| 174 | - name: other-tests
|
| 175 | dist: bionic
|
| 176 | cache:
|
| 177 | apt: true
|
| 178 | pip: true
|
| 179 |
|
| 180 | addons:
|
| 181 | apt:
|
| 182 | packages:
|
| 183 | - r-base-core
|
| 184 |
|
| 185 | script:
|
| 186 | - services/toil-worker.sh run-other-tests
|
| 187 |
|
| 188 | <<: *publish_html
|