.travis.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. language: c
  2. os:
  3. - linux
  4. - osx
  5. dist: bionic
  6. # Valgrind currently supports upto macOS 10.13, the latest xcode of that version is 10.1
  7. osx_image: xcode10.1
  8. addons:
  9. apt:
  10. packages:
  11. - libgmp-dev
  12. - valgrind
  13. - libtool-bin
  14. compiler:
  15. - clang
  16. - gcc
  17. env:
  18. global:
  19. - WIDEMUL=auto BIGNUM=auto STATICPRECOMPUTATION=yes ECMULTGENPRECISION=auto ASM=no BUILD=check WITH_VALGRIND=yes RUN_VALGRIND=no EXTRAFLAGS= HOST= ECDH=no RECOVERY=no SCHNORRSIG=no EXPERIMENTAL=no CTIMETEST=yes BENCH=yes ITERS=2
  20. matrix:
  21. - WIDEMUL=int64 RECOVERY=yes
  22. - WIDEMUL=int64 ECDH=yes EXPERIMENTAL=yes SCHNORRSIG=yes
  23. - WIDEMUL=int128
  24. - WIDEMUL=int128 RECOVERY=yes EXPERIMENTAL=yes SCHNORRSIG=yes
  25. - WIDEMUL=int128 ECDH=yes EXPERIMENTAL=yes SCHNORRSIG=yes
  26. - WIDEMUL=int128 ASM=x86_64
  27. - BIGNUM=no
  28. - BIGNUM=no RECOVERY=yes EXPERIMENTAL=yes SCHNORRSIG=yes
  29. - BIGNUM=no STATICPRECOMPUTATION=no
  30. - BUILD=distcheck WITH_VALGRIND=no CTIMETEST=no BENCH=no
  31. - CPPFLAGS=-DDETERMINISTIC
  32. - CFLAGS=-O0 CTIMETEST=no
  33. - CFLAGS="-fsanitize=undefined -fno-omit-frame-pointer" LDFLAGS="-fsanitize=undefined -fno-omit-frame-pointer" UBSAN_OPTIONS="print_stacktrace=1:halt_on_error=1" BIGNUM=no ASM=x86_64 ECDH=yes RECOVERY=yes EXPERIMENTAL=yes SCHNORRSIG=yes CTIMETEST=no
  34. - ECMULTGENPRECISION=2
  35. - ECMULTGENPRECISION=8
  36. - RUN_VALGRIND=yes BIGNUM=no ASM=x86_64 ECDH=yes RECOVERY=yes EXPERIMENTAL=yes SCHNORRSIG=yes EXTRAFLAGS="--disable-openssl-tests" BUILD=
  37. matrix:
  38. fast_finish: true
  39. include:
  40. - compiler: clang
  41. os: linux
  42. env: HOST=i686-linux-gnu
  43. addons:
  44. apt:
  45. packages:
  46. - gcc-multilib
  47. - libgmp-dev:i386
  48. - valgrind
  49. - libtool-bin
  50. - libc6-dbg:i386
  51. - compiler: clang
  52. env: HOST=i686-linux-gnu
  53. os: linux
  54. addons:
  55. apt:
  56. packages:
  57. - gcc-multilib
  58. - valgrind
  59. - libtool-bin
  60. - libc6-dbg:i386
  61. - compiler: gcc
  62. env: HOST=i686-linux-gnu
  63. os: linux
  64. addons:
  65. apt:
  66. packages:
  67. - gcc-multilib
  68. - valgrind
  69. - libtool-bin
  70. - libc6-dbg:i386
  71. - compiler: gcc
  72. os: linux
  73. env: HOST=i686-linux-gnu
  74. addons:
  75. apt:
  76. packages:
  77. - gcc-multilib
  78. - libgmp-dev:i386
  79. - valgrind
  80. - libtool-bin
  81. - libc6-dbg:i386
  82. # S390x build (big endian system)
  83. - compiler: gcc
  84. env: HOST=s390x-unknown-linux-gnu ECDH=yes RECOVERY=yes EXPERIMENTAL=yes SCHNORRSIG=yes CTIMETEST=
  85. arch: s390x
  86. # We use this to install macOS dependencies instead of the built in `homebrew` plugin,
  87. # because in xcode earlier than 11 they have a bug requiring updating the system which overall takes ~8 minutes.
  88. # https://travis-ci.community/t/macos-build-fails-because-of-homebrew-bundle-unknown-command/7296
  89. before_install:
  90. - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then HOMEBREW_NO_AUTO_UPDATE=1 brew install gmp valgrind gcc@9; fi
  91. before_script: ./autogen.sh
  92. # travis auto terminates jobs that go for 10 minutes without printing to stdout, but travis_wait doesn't work well with forking programs like valgrind (https://docs.travis-ci.com/user/common-build-problems/#build-times-out-because-no-output-was-received https://github.com/bitcoin-core/secp256k1/pull/750#issuecomment-623476860)
  93. script:
  94. - function keep_alive() { while true; do echo -en "\a"; sleep 60; done }
  95. - keep_alive &
  96. - ./contrib/travis.sh
  97. - kill %keep_alive
  98. after_script:
  99. - cat ./tests.log
  100. - cat ./exhaustive_tests.log
  101. - cat ./valgrind_ctime_test.log
  102. - cat ./bench.log
  103. - $CC --version
  104. - valgrind --version