1language: rust
2rust: nightly
3os: linux
4dist: focal
5
6stages:
7  - tools
8  - build-test-verify # Passes full test suite, permit no regressions (unless it's rustup :/)
9  - 32bit-tier1
10  - 64bit-tier2
11  - 32bit-tier2
12
13jobs:
14  fast_finish: true
15  include:
16    # Android:
17    - env: TARGET=x86_64-linux-android
18      name: "x86_64-unknown-linux-android + SSE2"
19      stage: build-test-verify
20    - env: TARGET=arm-linux-androideabi
21      name: "arm-linux-androideabi"
22      stage: build-test-verify
23    - env: TARGET=arm-linux-androideabi RUSTFLAGS="-C target-feature=+v7,+neon"
24      name: "arm-linux-androideabi + NEON"
25      stage: build-test-verify
26    - name: "aarch64-unknown-linux-android + NEON"
27      env: TARGET=aarch64-linux-android RUSTFLAGS="-C target-feature=+neon"
28      stage: build-test-verify
29    - env: TARGET="thumbv7neon-linux-androideabi"
30      name: "thumbv7neon-linux-androideabi"
31      stage: 32bit-tier2
32    # Linux:
33    - env: TARGET=i586-unknown-linux-gnu
34      name: "i586-unknown-linux-gnu"
35      stage: 32bit-tier2
36    - env: TARGET=i586-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse"
37      name: "i586-unknown-linux-gnu + SSE"
38      stage: 32bit-tier2
39    - env: TARGET=i586-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse2"
40      name: "i586-unknown-linux-gnu + SSE2"
41      stage: 32bit-tier2
42    - env: TARGET=i686-unknown-linux-gnu
43      name: "i686-unknown-linux-gnu + SSE2"
44      stage: 32bit-tier1
45    - env: TARGET=i686-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse4.2"
46      name: "i686-unknown-linux-gnu + SSE4.2"
47      stage: 32bit-tier1
48    - env: TARGET=i686-unknown-linux-gnu RUSTFLAGS="-C target-feature=+avx2"
49      name: "i686-unknown-linux-gnu + AVX2"
50      stage: 32bit-tier1
51    - env: TARGET=x86_64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+sse4.2"
52      name: "x86_64-unknown-linux-gnu + SSE4.2"
53      install: rustup component add rustfmt-preview
54      stage: build-test-verify
55    - env: TARGET=x86_64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+avx2"
56      name: "x86_64-unknown-linux-gnu + AVX2"
57      install: rustup component add rustfmt-preview
58      stage: build-test-verify
59    - env: TARGET=arm-unknown-linux-gnueabi RUSTFLAGS="-C target-feature=+v7,+neon"
60      name: "arm-unknown-linux-gnueabi + NEON"
61      stage: build-test-verify
62    - env: TARGET=arm-unknown-linux-gnueabihf
63      name: "arm-unknown-linux-gnueabihf"
64      stage: build-test-verify
65    - env: TARGET=arm-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+v7,+neon"
66      name: "arm-unknown-linux-gnueabihf + NEON"
67      stage: build-test-verify
68    - env: TARGET=armv7-unknown-linux-gnueabihf
69      name: "armv7-unknown-linux-gnueabihf"
70      stage: build-test-verify
71    - env: TARGET=armv7-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+neon"
72      name: "armv7-unknown-linux-gnueabihf + NEON"
73      stage: build-test-verify
74    - env: TARGET="thumbv7neon-unknown-linux-gnueabihf"
75      name: "thumbv7neon-unknown-linux-gnueabihf"
76      stage: 32bit-tier2
77    - name: "aarch64-unknown-linux-gnu + NEON"
78      env: TARGET=aarch64-unknown-linux-gnu RUSTFLAGS="-C target-feature=+neon"
79      stage: build-test-verify
80    - env: TARGET=mips-unknown-linux-gnu
81      name: "mips-unknown-linux-gnu"
82      stage: 32bit-tier2
83    - env: TARGET=mipsel-unknown-linux-musl
84      name: "mipsel-unknown-linux-musl"
85      stage: 32bit-tier2
86    - env: TARGET=mips64-unknown-linux-gnuabi64
87      name: "mips64-unknown-linux-gnuabi64"
88      stage: 64bit-tier2
89    - env: TARGET=mips64el-unknown-linux-gnuabi64
90      name: "mips64el-unknown-linux-gnuabi64"
91      stage: 64bit-tier2
92      # FIXME: https://github.com/rust-lang-nursery/packed_simd/issues/18
93      # env: TARGET=mips64el-unknown-linux-gnuabi64 RUSTFLAGS="-C target-feature=+msa -C target-cpu=mips64r6"
94    - env: TARGET=powerpc-unknown-linux-gnu
95      name: "powerpc-unknown-linux-gnu"
96      stage: 32bit-tier2
97    - env: TARGET=powerpc64-unknown-linux-gnu
98      name: "powerpc64-unknown-linux-gnu"
99      stage: 64bit-tier2
100    - name: "powerpc64le-unknown-linux-gnu"
101      env: TARGET=powerpc64le-unknown-linux-gnu
102      stage: build-test-verify
103    - name: "powerpc64le-unknown-linux-gnu + ALTIVEC"
104      env: TARGET=powerpc64le-unknown-linux-gnu RUSTFLAGS="-C target-feature=+altivec"
105      stage: build-test-verify
106    - name: "powerpc64le-unknown-linux-gnu + VSX"
107      env: TARGET=powerpc64le-unknown-linux-gnu RUSTFLAGS="-C target-feature=+vsx"
108      stage: build-test-verify
109    - name: "s390x-unknown-linux-gnu"
110      env: TARGET=s390x-unknown-linux-gnu
111      stage: 64bit-tier2
112    - env: TARGET=sparc64-unknown-linux-gnu
113      name: "sparc64-unknown-linux-gnu"
114      stage: 64bit-tier2
115    # WebAssembly:
116    - env: TARGET=wasm32-unknown-unknown
117      name: "wasm32-unknown-unknown"
118      stage: 32bit-tier2
119    # MacOSX:
120    - os: osx
121      env: TARGET=x86_64-apple-darwin RUSTFLAGS="-C target-feature=+sse4.2"
122      name: "x86_64-apple-darwin + SSE4.2"
123      install: true
124      script: ci/run.sh
125      osx_image: xcode10
126      stage: build-test-verify
127      # Travis-CI OSX build bots do not support AVX2:
128    - os: osx
129      env: TARGET=x86_64-apple-darwin RUSTFLAGS="-C target-feature=+avx"
130      name: "x86_64-apple-darwin + AVX"
131      install: true
132      script: ci/run.sh
133      osx_image: xcode10
134      stage: build-test-verify
135    # *BSDs:
136    #- env: TARGET=i686-unknown-freebsd NORUN=1
137    #  script: ci/run.sh
138    #- env: TARGET=x86_64-unknown-freebsd NORUN=1
139    #  script: ci/run.sh
140    #- env: TARGET=x86_64-unknown-netbsd NORUN=1
141    #  script: ci/run.sh
142    # Solaris:
143    #- env: TARGET=x86_64-sun-solaris NORUN=1
144    #  script: ci/run.sh
145    # iOS:
146    - os: osx
147      env: TARGET=x86_64-apple-ios
148      name: "x86_64-apple-ios + SSE2"
149      script: ci/run.sh
150      osx_image: xcode9.4
151      stage: 64bit-tier2
152    - name: "aarch64-apple-ios + NEON"
153      env: TARGET=aarch64-apple-ios RUSTFLAGS="-C target-feature=+neon"
154      os: osx
155      osx_image: xcode9.4
156      script: ci/run.sh
157      stage: 64bit-tier2
158    # BENCHMARKS:
159    - name: "Benchmarks - x86_64-unknown-linux-gnu"
160      install: TARGET=x86_64-unknown-linux-gnu ./ci/setup_benchmarks.sh
161      # FIXME: Use `core_arch,sleef-sys` features once they works again
162      script: PATH=$(pwd):$PATH NORUN=1 VERIFY=1 FEATURES=ispc ci/benchmark.sh
163      stage: tools
164    - name: "Benchmarks - x86_64-apple-darwin"
165      install: TARGET=x86_64-apple-darwin ./ci/setup_benchmarks.sh
166      # FIXME: Use `core_arch,sleef-sys` features once they works again
167      script: PATH=$(pwd):$PATH NORUN=1 VERIFY=1 FEATURES=ispc ci/benchmark.sh
168      os: osx
169      osx_image: xcode9.4
170      stage: tools
171    # TOOLS:
172    - name: "Documentation"
173      before_install:
174        - sudo add-apt-repository -y ppa:deadsnakes/ppa
175        - sudo apt-get update -y
176        - sudo apt-get install -y python3.9
177      install:
178        - cargo install mdbook
179      script: ci/dox.sh
180      stage: tools
181    - name: "rustfmt"
182      install: true
183      script: |
184        if rustup component add rustfmt-preview ; then
185            ci/all.sh check_fmt || true
186        fi
187      stage: tools
188    - name: "clippy"
189      install: true
190      script: |
191        if rustup component add clippy-preview ; then
192            ci/all.sh clippy
193        fi
194      stage: tools
195
196  allow_failures:
197    # FIXME: ISPC cannot be found?
198    - name: "Benchmarks - x86_64-apple-darwin"
199    # FIXME: i686 fails in inlining, apparently
200    - stage: 32bit-tier1
201    #- env: TARGET=i686-unknown-freebsd NORUN=1
202    #- env: TARGET=x86_64-unknown-freebsd NORUN=1
203    #- env: TARGET=x86_64-unknown-netbsd NORUN=1
204    #- env: TARGET=x86_64-sun-solaris NORUN=1
205
206    # FIXME: TBD
207    - stage: 64bit-tier2
208    - stage: 32bit-tier2
209
210    # FIXME: iOS
211    # https://github.com/rust-lang-nursery/packed_simd/issues/26
212    - env: TARGET=x86_64-apple-ios
213    # Is this related to the above? Mysterious test failure
214    - name: "aarch64-apple-ios + NEON"
215
216    # FIXME: https://github.com/rust-lang-nursery/packed_simd/issues/182
217    - env: TARGET=arm-unknown-linux-gnueabi RUSTFLAGS="-C target-feature=+v7,+neon"
218    - env: TARGET=arm-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+v7,+neon"
219    - env: TARGET=armv7-unknown-linux-gnueabihf RUSTFLAGS="-C target-feature=+neon"
220
221    # FIXME: https://github.com/rust-lang-nursery/packed_simd/issues/183
222    - env: TARGET=wasm32-unknown-unknown
223
224install: travis_retry rustup target add $TARGET
225before_script: cargo generate-lockfile
226script: travis_wait 50 ci/run-docker.sh
227after_script: sleep 5
228
229env:
230  global:
231    secure: "lPHv7s6+AxQYNaFncycVFQt++Y1asQmMhOikQU1ztlP8CK7+hn2m98cg/euOJyzIOb2iJ3ZX4cGZkzw4lc59MQBByb1GtDbazQoUOzVDbVfe9BDD2f8JVoIFh1CMfjPKQ7Gg/rJqWlwrUlSd5GNxPCutKjY7qZhJuR6SQbJjlWaGN2Vd4fVCzKXz8fHRXgMEZS+d+CR4Nsrkb83J3Z4s5kSdJmhYxJ61AWjuzJVwUh4l3/HEYlSL5XXpuh5R2i7W16h1PlNdaTUgkZli1lHzO8+6Q8LzX9+XiLIEVX9lw3A2NdIKGz8E/+7Qs5oYOkwYhjROsDQxIK7xkSM30bQuN7cwMBybAVIyOPJkqXQ1dQyp83KSdsOj7JMyDDRvcEDLI6ehRlm5EcdH7YrReuboN81iUo0Sa7VsuUmgj5hjERCt9r30f9aWuitABai7vKRtjglg7Sp5CrEVPA4PQs6PqKCCRogoggbXJ/Z5Dyw/RZaXPeNR9+qIKN1Vjm9Gew1sRN2JK/3+vXTKtyJXH/uBxgJt4jQlbuShOJuF+BSfTF88sMe67a/357SSOIb4JkaCyd0flDCWYE8576kaHPlVVMT2peXee0LeRXm1e13nG3Na0t3LS/orJLPHOShNQGoDj7qAP5aEKggRya896JGwtvlaBHHTmSQh65G7cyNErZo="
232branches:
233  only:
234    - staging # bors r+
235    - trying  # bors try
236    - master
237notifications:
238  email:
239    on_success: never
240