I cannot continue without some CI, there are too many different behaviors depending on the compiler and compiler version. It takes too much time on my machine, and I often forget this or that compiler. I have been caught many times by portability issues when working for move semantics.
This is just the start, we should add more checks (‘maintainer check’). I have ‘forked’ Bison on my github account (https://github.com/akimd/bison), and the builds are launched from there. They can be watched here: https://travis-ci.com/akimd/bison. commit 7132650bba7e2c357c96fdb86aa764651e151877 Author: Akim Demaille <[email protected]> Date: Thu Sep 6 05:55:14 2018 +0200 CI: prepare for travis * .travis.yml: New. diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..b21839ea --- /dev/null +++ b/.travis.yml @@ -0,0 +1,128 @@ +language: cpp + +matrix: + include: + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.9 + env: + - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + env: + - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-6 + env: + - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-7 + env: + - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.6 + packages: + - clang-3.6 + env: + - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.7 + packages: + - clang-3.7 + env: + - MATRIX_EVAL="CC=clang-3.7 && CXX=clang++-3.7" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.8 + packages: + - clang-3.8 + env: + - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" + + # works on Trusty + - os: linux + addons: + apt: + sources: + - llvm-toolchain-trusty-3.9 + packages: + - clang-3.9 + env: + - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" + + # works on Trusty + - os: linux + addons: + apt: + sources: + - llvm-toolchain-trusty-4.0 + packages: + - clang-4.0 + env: + - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" + + # works on Trusty + - os: linux + addons: + apt: + sources: + - llvm-toolchain-trusty-5.0 + packages: + - clang-5.0 + env: + - MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" + + +before_install: + - sudo apt-get update -qq + - sudo apt-get install -qq autoconf automake autopoint flex gettext graphviz help2man m4 texinfo valgrind + - eval "${MATRIX_EVAL}" + +script: + - ./bootstrap + - ./configure CC="$CC" CXX="$CXX" + - make -j2 + - make check VERBOSE=1 TESTSUITEFLAGS=-j2 +
