language: c
dist: bionic

notifications:
  email: false

before_install:
  sudo apt-get install -y libsqlite3-dev cppcheck valgrind gcc-4.8 gettext libc6-dev-armhf-cross libc6-dev-arm64-cross gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf qemu-user-static binfmt-support libsecp256k1-dev libpq-dev postgresql

env:
  # These run superficial checks that don't take too long on their own
  - ARCH=64 TEST_CMD="make" NO_PYTHON=1
  - ARCH=64 TEST_CMD="make check-source check-units installcheck" COPTFLAGS="-O3"
  - ARCH=32 TEST_CMD="make check-source check-units installcheck" DEVELOPER=0
  - ARCH=64 TEST_CMD="make check-source check-units installcheck" DEVELOPER=0 COMPILER=gcc-4.8
  - ARCH=64 TEST_CMD="make check-source check-units installcheck" DEVELOPER=1 EXPERIMENTAL_FEATURES=1

  # All of the following will just run `make pytest`
  - VALGRIND=0 ARCH=64 DEVELOPER=1 COMPILER=clang
  - VALGRIND=0 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_CHECK_DBSTMTS=1
  - VALGRIND=0 ARCH=64 DEVELOPER=0 COMPILER=gcc COMPAT=0 TEST_GROUP=1 TEST_GROUP_COUNT=2
  - VALGRIND=0 ARCH=64 DEVELOPER=0 COMPILER=gcc COMPAT=0 TEST_GROUP=2 TEST_GROUP_COUNT=2

  ## All of these are pretty slow since they run under valgrind
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=1 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=2 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=3 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=4 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=5 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=6 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=7 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=8 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=9 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=10 TEST_GROUP_COUNT=11
  - VALGRIND=1 ARCH=64 DEVELOPER=1 COMPILER=gcc TEST_GROUP=11 TEST_GROUP_COUNT=11

  # Various other configurations
  - VALGRIND=0 ARCH=64 DEVELOPER=1 NETWORK=liquid-regtest
  - VALGRIND=0 ARCH=64 DEVELOPER=1 DB=postgres
  - VALGRIND=0 ARCH=arm32v7 DEVELOPER=1 TARGET_HOST=arm-linux-gnueabihf
  - VALGRIND=0 ARCH=arm64v8 DEVELOPER=1 TARGET_HOST=aarch64-linux-gnu
  - VALGRIND=0 ARCH=64 DEVELOPER=1 COMPILER=gcc EXPERIMENTAL_FEATURES=1

cache:
  directories:
    - external/x86_64-linux-gnu
    - external/aarch64-linux-gnu
    - external/arm-linux-gnueabihf
    - dependencies

script:
  .travis/build.sh