ci_build.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env bash
  2. set -x
  3. set -e
  4. cd ../../
  5. mkdir tmp
  6. BUILD_PREFIX=$PWD/tmp
  7. CONFIG_OPTS=()
  8. CONFIG_OPTS+=("CFLAGS=-I${BUILD_PREFIX}/include -g -Og")
  9. CONFIG_OPTS+=("CPPFLAGS=-I${BUILD_PREFIX}/include")
  10. CONFIG_OPTS+=("CXXFLAGS=-I${BUILD_PREFIX}/include -g -Og")
  11. CONFIG_OPTS+=("LDFLAGS=-L${BUILD_PREFIX}/lib")
  12. CONFIG_OPTS+=("PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig")
  13. CONFIG_OPTS+=("--prefix=${BUILD_PREFIX}")
  14. CONFIG_OPTS+=("--enable-drafts=no")
  15. function print_abi_api_breakages() {
  16. echo "ABI breakages detected:"
  17. cat compat_reports/libzmq/${LATEST_VERSION}_to_HEAD/abi_affected.txt | c++filt
  18. echo "API breakages detected:"
  19. cat compat_reports/libzmq/${LATEST_VERSION}_to_HEAD/src_affected.txt | c++filt
  20. exit 1
  21. }
  22. git fetch --unshallow
  23. git fetch --all --tags
  24. LATEST_VERSION=$(git describe --abbrev=0 --tags)
  25. ./autogen.sh
  26. ./configure "${CONFIG_OPTS[@]}"
  27. make VERBOSE=1 -j5
  28. abi-dumper src/.libs/libzmq.so -o ${BUILD_PREFIX}/libzmq.head.dump -lver HEAD
  29. git clone --depth 1 -b ${LATEST_VERSION} https://github.com/zeromq/libzmq.git latest_release
  30. cd latest_release
  31. ./autogen.sh
  32. ./configure "${CONFIG_OPTS[@]}"
  33. make VERBOSe=1 -j5
  34. abi-dumper src/.libs/libzmq.so -o ${BUILD_PREFIX}/libzmq.latest.dump -lver ${LATEST_VERSION}
  35. abi-compliance-checker -l libzmq -d1 ${BUILD_PREFIX}/libzmq.latest.dump -d2 ${BUILD_PREFIX}/libzmq.head.dump -list-affected || print_abi_api_breakages