travis: update dist, add custom matrix

New matrix for 5 jobs in total.

Updates our checks to bionic & xenial. Trusty could also be
included but it is a bit outdated at this point.

I use bionic to pull a more recent clang-format and use a dedicated job
just to check formatting. An alternative would be to conditionally run
the formatting script only on bionic.

I don't think that there is a better way to expand a `dist` x `compiler`
matrix (except using docker).
This commit is contained in:
Orestis Floros 2020-05-01 11:10:05 +02:00
parent aad3cc99c5
commit 84ad5c93db
No known key found for this signature in database
GPG Key ID: A09DBD7D3222C1C3
4 changed files with 29 additions and 17 deletions

View File

@ -1,10 +1,25 @@
os: linux os: linux
dist: trusty
language: c language: c
compiler: jobs:
- gcc include:
- clang - name: "clang-format check"
dist: bionic
addons:
apt:
packages:
- clang-format-6.0
script:
- clang-format-6.0 -i $(find . -name "*.[ch]" | tr '\n' ' ') && git diff --exit-code || (echo 'Code was not formatted using clang-format!'; false)
- dist: xenial
compiler: gcc
- dist: xenial
compiler: clang
- dist: bionic
compiler: gcc
- dist: bionic
compiler: clang
addons: addons:
# See http://docs.travis-ci.com/user/apt/ # See http://docs.travis-ci.com/user/apt/
apt: apt:
@ -18,11 +33,8 @@ addons:
# xmlto pulls in a2x which we need for generating manpages from asciidoc. # xmlto pulls in a2x which we need for generating manpages from asciidoc.
- xmlto - xmlto
- libcap2-bin - libcap2-bin
- clang-format-3.8
- libllvm3.5
- pulseaudio - pulseaudio
script: script:
- clang-format-3.8 -i $(find . -name "*.[ch]" | tr '\n' ' ') && git diff --exit-code || (echo 'Code was not formatted using clang-format!'; false)
# TODO: re-enable sanitizers once issues are fixed # TODO: re-enable sanitizers once issues are fixed
- autoreconf -fi && mkdir -p build && cd build && (../configure --disable-sanitizers || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse || (echo "not linked against pulseaudio"; exit 1) - autoreconf -fi && mkdir -p build && cd build && (../configure --disable-sanitizers || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse || (echo "not linked against pulseaudio"; exit 1)
- make clean && (../configure --disable-sanitizers --disable-pulseaudio || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse && (echo "linked against pulseaudio"; exit 1) || true - make clean && (../configure --disable-sanitizers --disable-pulseaudio || (cat config.log; false)) && make -j 8 V=1 && ldd ./i3status |& grep -q pulse && (echo "linked against pulseaudio"; exit 1) || true