|
| 1 | +--- |
1 | 2 | os: linux
|
2 |
| -group: edge |
| 3 | +# use most recent available distro to support installation of crypsetup 2.2.0 |
| 4 | +# or above with as little fuss as possible. |
| 5 | +dist: bionic |
3 | 6 |
|
4 | 7 | addons:
|
5 |
| - apt: |
6 |
| - packages: |
7 |
| - - libdbus-1-dev |
8 |
| - - libudev-dev |
9 |
| - - libdbus-glib-1-dev |
| 8 | + apt: |
| 9 | + packages: |
| 10 | + - libdbus-1-dev |
| 11 | + - libudev-dev |
| 12 | + - libdbus-glib-1-dev |
10 | 13 |
|
11 | 14 | language: rust
|
12 | 15 |
|
13 |
| -matrix: |
14 |
| - fast_finish: true |
15 |
| - allow_failures: |
16 |
| - # Allow audit task to fail |
17 |
| - - env: TASK=audit |
18 |
| - include: |
| 16 | +# Use a package which supplies cryptsetup 2.3.0 which is required |
| 17 | +# by features added in libcryptsetup-rs that are used in stratisd. |
| 18 | +before_install: |
| 19 | + - > |
| 20 | + sudo |
| 21 | + add-apt-repository |
| 22 | + -y |
| 23 | + "deb http://us.archive.ubuntu.com/ubuntu/ eoan main" |
| 24 | + - sudo apt-get -q update |
| 25 | + # Update to a more recent version of blkid |
| 26 | + - sudo apt-get -y install util-linux libblkid-dev |
| 27 | + # cryptsetup-bin conflicts with custom built cryptsetup |
| 28 | + - sudo apt-get remove cryptsetup-bin |
| 29 | + - sudo apt-get install -y libargon2-0 libjson-c3 |
| 30 | + - > |
| 31 | + wget |
| 32 | + "https://github.com/jbaublitz/stratisd/raw/deb/cryptsetup_2.3.0-1_amd64.deb" |
| 33 | + - sudo dpkg -i ./cryptsetup_2.3.0-1_amd64.deb |
| 34 | + # Linking fails if libcryptsetup 2.2 is present - must force |
| 35 | + # remove due to system dependencies |
| 36 | + - sudo dpkg --purge --force-all libcryptsetup12 |
19 | 37 |
|
20 |
| - # MANDATORY CHECKS USING CURRENT DEVELOPMENT COMPILER |
21 |
| - - name: "format Rust source using current development toolchain" |
22 |
| - rust: 1.40.0 |
23 |
| - before_script: |
24 |
| - - rustup component add rustfmt |
25 |
| - env: TASK=fmt-travis |
26 |
| - - name: "lint Rust source using current development toolchain" |
27 |
| - rust: 1.40.0 |
28 |
| - before_script: |
29 |
| - - rustup component add clippy |
30 |
| - env: TASK=clippy |
| 38 | +jobs: |
| 39 | + fast_finish: true |
| 40 | + allow_failures: |
| 41 | + # Allow audit task to fail |
| 42 | + - env: TASK=audit |
| 43 | + include: |
31 | 44 |
|
32 |
| - # MANDATORY TESTING USING LOWEST SUPPORTED COMPILER |
33 |
| - - name: "run Rust unit tests on lowest supported toolchain" |
34 |
| - rust: 1.39.0 |
35 |
| - env: TASK=test |
36 |
| - - name: "build release on lowest supported toolchain" |
37 |
| - rust: 1.39.0 |
38 |
| - env: TASK=release |
| 45 | + # MANDATORY CHECKS USING CURRENT DEVELOPMENT COMPILER |
| 46 | + - name: "format Rust source using current development toolchain" |
| 47 | + rust: 1.43.0 |
| 48 | + before_script: |
| 49 | + - rustup component add rustfmt |
| 50 | + env: TASK=fmt-travis |
| 51 | + - name: "lint Rust source using current development toolchain" |
| 52 | + rust: 1.43.0 |
| 53 | + before_script: |
| 54 | + - rustup component add clippy |
| 55 | + env: TASK=clippy |
39 | 56 |
|
| 57 | + # MANDATORY TESTING ON STABLE |
| 58 | + - name: "build using stable toolchain" |
| 59 | + rust: stable |
| 60 | + env: TASK=build |
| 61 | + - name: "build without defaults using stable toolchain" |
| 62 | + rust: stable |
| 63 | + env: TASK=build-no-default |
| 64 | + - name: "build Rust docs using stable toolchain" |
| 65 | + rust: stable |
| 66 | + env: TASK=docs-travis |
| 67 | + - name: "run Rust unit tests using stable toolchain" |
| 68 | + rust: stable |
| 69 | + env: TASK=test |
| 70 | + - name: "run Rust destructive unit tests using stable toolchain" |
| 71 | + rust: stable |
| 72 | + script: |
| 73 | + - > |
| 74 | + sudo |
| 75 | + PATH=${TRAVIS_HOME}/.cargo/bin:$PATH RUST_LOG=libstratis=info |
| 76 | + make |
| 77 | + -f |
| 78 | + Makefile |
| 79 | + test-travis |
| 80 | + - name: "build release using stable toolchain" |
| 81 | + rust: stable |
| 82 | + env: TASK=release |
40 | 83 |
|
41 |
| - # MANDATORY TESTING ON STABLE |
42 |
| - - name: "build using stable toolchain" |
43 |
| - rust: stable |
44 |
| - env: TASK=build |
45 |
| - - name: "build without defaults using stable toolchain" |
46 |
| - rust: stable |
47 |
| - env: TASK=build-no-default |
48 |
| - - name: "build Rust source and tests on a 32-bit system using stable toolchain" |
49 |
| - rust: stable |
50 |
| - env: TASK=build-tests TARGET=i686-unknown-linux-gnu PKG_CONFIG_ALLOW_CROSS=1 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/ |
51 |
| - install: |
52 |
| - - rustup target add $TARGET |
53 |
| - - sudo dpkg --add-architecture i386 |
54 |
| - - sudo apt-get update |
55 |
| - - sudo apt-get install -y gcc-multilib libdbus-1-dev:i386 libdbus-glib-1-dev:i386 libglib2.0-dev:i386 libudev-dev:i386 |
56 |
| - - name: "build Rust docs using stable toolchain" |
57 |
| - rust: stable |
58 |
| - env: TASK=docs-travis |
59 |
| - - name: "run Rust unit tests using stable toolchain" |
60 |
| - rust: stable |
61 |
| - env: TASK=test |
62 |
| - - name: "run Rust destructive unit tests using stable toolchain" |
63 |
| - rust: stable |
64 |
| - sudo: required |
65 |
| - script: sudo PATH=${TRAVIS_HOME}/.cargo/bin:$PATH make -f Makefile test-travis |
66 |
| - - name: "build release using stable toolchain" |
67 |
| - rust: stable |
68 |
| - env: TASK=release |
69 | 84 |
|
| 85 | + # MANDATORY PYTHON CHECKS ON RECOMMENDED DEVELOPMENT INTERPRETER |
| 86 | + - name: "lint Python code on recommended development interpreter" |
| 87 | + language: python |
| 88 | + python: "3.7.6" |
| 89 | + install: |
| 90 | + - > |
| 91 | + pip |
| 92 | + install |
| 93 | + pylint==2.3.1 |
| 94 | + dbus-client-gen==0.4 |
| 95 | + dbus-python-client-gen==0.7 |
| 96 | + psutil==5.4.3 |
| 97 | + pyudev==0.22.0 |
| 98 | + script: |
| 99 | + - > |
| 100 | + (cd scripts; make -f Makefile lint); |
| 101 | + (cd tests/client-dbus; PYTHONPATH=./src make -f Makefile lint) |
| 102 | + - name: "format Python code on recommended development interpreter" |
| 103 | + language: python |
| 104 | + python: "3.7.6" |
| 105 | + install: pip install black==19.3b0 isort==4.3.4 |
| 106 | + script: |
| 107 | + - > |
| 108 | + (cd scripts; make fmt-travis); |
| 109 | + (cd tests/client-dbus; make fmt-travis) |
70 | 110 |
|
71 |
| - # MANDATORY PYTHON CHECKS ON RECOMMENDED DEVELOPMENT INTERPRETER |
72 |
| - - name: "lint Python test code on recommended development interpreter" |
73 |
| - language: python |
74 |
| - python: "3.7.6" |
75 |
| - install: pip install pylint==2.3.1 dbus-client-gen==0.4 dbus-python-client-gen==0.7 psutil==5.4.3 pyudev==0.21.0 |
76 |
| - before_script: |
77 |
| - - cd tests/client-dbus |
78 |
| - script: PYTHONPATH=./src make -f Makefile lint |
79 |
| - - name: "format Python test code on recommended development interpreter" |
80 |
| - language: python |
81 |
| - python: "3.7.6" |
82 |
| - install: pip install black==19.3b0 isort==4.3.4 |
83 |
| - before_script: |
84 |
| - - cd tests/client-dbus |
85 |
| - env: TASK=fmt-travis |
| 111 | + # MANDATORY PYTHON CHECKS ON FUTURE SUPPORTED INTERPRETER |
| 112 | + - name: "lint Python code on future supported interpreter" |
| 113 | + language: python |
| 114 | + python: "3.7.7" |
| 115 | + install: |
| 116 | + - > |
| 117 | + pip |
| 118 | + install |
| 119 | + pylint==2.4.4 |
| 120 | + dbus-client-gen==0.4 |
| 121 | + dbus-python-client-gen==0.7 |
| 122 | + psutil==5.6.7 |
| 123 | + pyudev==0.22.0 |
| 124 | + script: |
| 125 | + - > |
| 126 | + (cd scripts; make -f Makefile lint); |
| 127 | + (cd tests/client-dbus; PYTHONPATH=./src make -f Makefile lint) |
| 128 | + - name: "format Python code on future development interpreter" |
| 129 | + language: python |
| 130 | + python: "3.7.7" |
| 131 | + install: pip install black==19.10b0 isort==4.3.21 |
| 132 | + script: |
| 133 | + - > |
| 134 | + (cd scripts; make fmt-travis); |
| 135 | + (cd tests/client-dbus; make fmt-travis) |
86 | 136 |
|
| 137 | + # MANDATORY PYTHON CHECKS ON LOWEST SUPPORTED INTERPRETER |
| 138 | + - name: "lint Python code on lowest supported interpreter" |
| 139 | + language: python |
| 140 | + python: "3.6.8" |
| 141 | + install: |
| 142 | + - > |
| 143 | + pip |
| 144 | + install |
| 145 | + pylint==2.3.1 |
| 146 | + dbus-client-gen==0.4 |
| 147 | + dbus-python-client-gen==0.7 |
| 148 | + psutil==5.4.3 |
| 149 | + pyudev==0.22.0 |
| 150 | + script: |
| 151 | + - > |
| 152 | + (cd scripts; make -f Makefile lint); |
| 153 | + (cd tests/client-dbus; PYTHONPATH=./src make -f Makefile lint) |
87 | 154 |
|
88 |
| - # INTERMITTENTLY ALLOWED FAILURES |
89 |
| - # Allowed if a failure occurs after a new Rust release until the |
90 |
| - # failure is addressed. |
91 |
| - - name: "lint Rust source using beta toolchain" |
92 |
| - rust: beta |
93 |
| - before_script: |
94 |
| - - rustup component add clippy |
95 |
| - env: TASK=clippy |
| 155 | + # VERIFICATION OF TEST INFRASTRUCTURE |
| 156 | + - name: "run yamllint 1.20.0 on .travis.yml" |
| 157 | + language: python |
| 158 | + python: "3.7.6" |
| 159 | + install: pip install yamllint==1.20.0 |
| 160 | + env: TASK=yamllint |
96 | 161 |
|
| 162 | + # INTERMITTENTLY ALLOWED FAILURES |
| 163 | + # Allowed if a failure occurs after a new Rust release until the |
| 164 | + # failure is addressed. |
| 165 | + - name: "lint Rust source using beta toolchain" |
| 166 | + rust: beta |
| 167 | + before_script: |
| 168 | + - rustup component add clippy |
| 169 | + env: TASK=clippy |
97 | 170 |
|
98 |
| - # ALLOWED FAILURES |
99 |
| - # Run audit on Rust stable. Make it an allowed failure, because: |
100 |
| - # * It takes 9 minutes, the longest of any task. |
101 |
| - # * It should be an advisory, and should not gate our development. |
102 |
| - - name: "run Rust audit task using stable toolchain" |
103 |
| - rust: stable |
104 |
| - env: TASK=audit |
| 171 | + # ALLOWED FAILURES |
| 172 | + # Run audit on Rust stable. Make it an allowed failure, because: |
| 173 | + # * It takes 9 minutes, the longest of any task. |
| 174 | + # * It should be an advisory, and should not gate our development. |
| 175 | + - name: "run Rust audit task using stable toolchain" |
| 176 | + rust: stable |
| 177 | + env: TASK=audit |
105 | 178 |
|
106 | 179 | branches:
|
107 |
| - only: master |
| 180 | + only: |
| 181 | + - master |
108 | 182 |
|
109 | 183 | script: make -f Makefile $TASK
|
0 commit comments