OILS / .travis.yml.in View on Github | oilshell.org

188 lines, 156 significant
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
35jobs:
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