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
|