Joel Galenson | 006226b | 2020-10-23 08:06:44 -0700 | [diff] [blame] | 1 | language: rust |
| 2 | rust: stable |
| 3 | dist: xenial |
| 4 | sudo: false |
| 5 | notifications: |
| 6 | email: disabled |
| 7 | |
| 8 | cache: cargo |
| 9 | |
| 10 | install: |
| 11 | - if [ -z "$NO_ADD" ]; then rustup target add "$TARGET"; fi |
| 12 | |
| 13 | script: |
| 14 | - cargo build --verbose --target "$TARGET" |
| 15 | # Only run the targets if we are on the same OS. |
| 16 | - if [ "$RUN" == "1" ]; then cargo test --verbose --target "$TARGET"; fi |
| 17 | |
| 18 | env: |
| 19 | global: |
| 20 | # Travis CI servers make 2 cores available to processes via virtualization. |
| 21 | # See https://docs.travis-ci.com/user/reference/overview/ |
| 22 | - NUM_CPUS_TEST_GET=2 |
| 23 | |
| 24 | matrix: |
| 25 | include: |
| 26 | # Linux |
| 27 | # Minimum Supported Rust Version |
| 28 | - name: Minimum Supported Rust Version |
| 29 | env: TARGET=x86_64-unknown-linux-gnu RUN=1 NO_ADD=1 |
| 30 | rust: 1.13.0 |
| 31 | # 32-bit requires multilib. |
| 32 | - env: TARGET=i686-unknown-linux-gnu RUN=1 |
| 33 | addons: |
| 34 | apt: |
| 35 | packages: |
| 36 | - gcc-multilib |
| 37 | # 64-bit stable. |
| 38 | - env: TARGET=x86_64-unknown-linux-gnu RUN=1 NO_ADD=1 |
| 39 | rust: stable |
| 40 | # 64-bit beta. |
| 41 | - env: TARGET=x86_64-unknown-linux-gnu RUN=1 NO_ADD=1 |
| 42 | rust: beta |
| 43 | # 64-bit nightly. |
| 44 | - env: TARGET=x86_64-unknown-linux-gnu RUN=1 NO_ADD=1 |
| 45 | rust: nightly |
| 46 | |
| 47 | # Mac OS X |
| 48 | - os: osx |
| 49 | env: TARGET=x86_64-apple-darwin RUN=1 NO_ADD=1 |
| 50 | # Android |
| 51 | # - for x86 |
| 52 | - env: TARGET=i686-linux-android |
| 53 | - env: TARGET=x86_64-linux-android |
| 54 | # - for ARM |
| 55 | - env: TARGET=arm-linux-androideabi |
| 56 | - env: TARGET=aarch64-linux-android |
| 57 | # IOS |
| 58 | - os: osx |
| 59 | osx_image: xcode9 |
| 60 | env: TARGET=x86_64-apple-ios |
| 61 | # FreeBSD |
| 62 | - env: TARGET=x86_64-unknown-freebsd |
| 63 | # Fuchsia |
| 64 | # FIXME: figure out why target is missing and re-enable |
| 65 | #- env: TARGET=x86_64-unknown-fuchsia |
| 66 | # NetBSD |
| 67 | - env: TARGET=x86_64-unknown-netbsd |
| 68 | # Emscripten |
| 69 | - env: TARGET=asmjs-unknown-emscripten |
| 70 | |
| 71 | # CGroups in Docker |
| 72 | - name: Docker CGroups |
| 73 | install: |
| 74 | script: |
| 75 | - docker build -f ci/cgroups/Dockerfile -t num-cpus-cgroups . |
| 76 | # Test without cgroups |
| 77 | - docker run -it -e NUM_CPUS_TEST_GET=2 num-cpus-cgroups |
| 78 | # Only 1 CPU |
| 79 | - docker run -it --cpus="1" -e NUM_CPUS_TEST_GET=1 num-cpus-cgroups |
| 80 | # 1.5 CPUs |
| 81 | - docker run -it --cpus="1.5" -e NUM_CPUS_TEST_GET=2 num-cpus-cgroups |