From 863fc6ce0df8884f43fcf66edeea4dc7ac85dd78 Mon Sep 17 00:00:00 2001 From: "rafay.khan" Date: Tue, 4 Oct 2022 12:10:20 +0300 Subject: [PATCH] test staged build travis --- .travis.yml | 305 ++++++++++++++++++++++++++-------------------------- 1 file changed, 155 insertions(+), 150 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5a12577..05dd446 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,153 +42,158 @@ script: # run your tests and build binaries matrix: include: - # linux publishable node v8 - - os: linux - env: BUILDTYPE=release - node_js: 8 - # linux publishable node v8/debug - - os: linux - env: BUILDTYPE=debug - node_js: 8 - # linux publishable node v10 - - os: linux - env: BUILDTYPE=release - node_js: 10 - # linux publishable node v10/debug - - os: linux - env: BUILDTYPE=debug - node_js: 10 - # linux publishable node v12 - - os: linux - env: BUILDTYPE=release - node_js: 12 - # linux publishable node v14/debug - - os: linux - env: BUILDTYPE=debug - node_js: 14 - # linux publishable node v14 - - os: linux - env: BUILDTYPE=release - node_js: 14 - # linux publishable node v12/debug - - os: linux - env: BUILDTYPE=debug - node_js: 12 - # linux publishable node v16 - - os: linux - env: BUILDTYPE=release - node_js: 16 - # linux publishable node v16/debug - - os: linux - env: BUILDTYPE=debug - node_js: 16 - # osx publishable node v8 - - os: osx - osx_image: xcode11 - env: BUILDTYPE=release - node_js: 8 - # osx publishable node v10 - - os: osx - osx_image: xcode11 - env: BUILDTYPE=release - node_js: 10 - # osx publishable node v12 - - os: osx - osx_image: xcode11 - env: BUILDTYPE=release - node_js: 12 - # osx publishable node v14 - - os: osx - osx_image: xcode11 - env: BUILDTYPE=release - node_js: 14 - # osx publishable node v16 - - os: osx - osx_image: xcode11 - env: BUILDTYPE=release - node_js: 16 - # Sanitizer build node v10/Debug - - os: linux - env: BUILDTYPE=debug TOOLSET=asan - node_js: 10 - sudo: required - # Overrides `install` to set up custom asan flags - install: - - ./scripts/setup.sh --config local.env - # put mason and clang++ on PATH - - source local.env - # Note: to build without stopping on errors remove the -fno-sanitize-recover=all flag - # You might want to do this if there are multiple errors and you want to see them all before fixing - - export CXXFLAGS="${MASON_SANITIZE_CXXFLAGS} -fno-sanitize-recover=all" - - export LDFLAGS="${MASON_SANITIZE_LDFLAGS}" - - make ${BUILDTYPE} - # Overrides `script` to disable asan LD_PRELOAD before publishing - before_script: - - export LD_PRELOAD=${MASON_LLVM_RT_PRELOAD} - - export ASAN_OPTIONS=fast_unwind_on_malloc=0:${ASAN_OPTIONS} - - npm test - - unset LD_PRELOAD - # after successful tests, publish binaries if specified in commit message - # - ./scripts/publish.sh --toolset=${TOOLSET:-} --debug=$([ "${BUILDTYPE}" == 'debug' ] && echo "true" || echo "false") - script: - - true - # g++ build (default builds all use clang++) - - os: linux - # Note: -fext-numeric-literals is needed to workaround gcc bug: - # boost/math/constants/constants.hpp:269:3: error: unable to find numeric literal operator 'operatorQ' - env: BUILDTYPE=debug CXX="g++-9" CC="gcc-9" CXXFLAGS="-fext-numeric-literals" - node_js: 10 - addons: - apt: - sources: - - sourceline: "ppa:ubuntu-toolchain-r/test" - packages: - - libstdc++-10-dev - - g++-9 - # Overrides `install` to avoid initializing clang toolchain - install: - - make ${BUILDTYPE} - # Overrides `script` to disable publishing - before_script: - - npm test - # Coverage build - - os: linux - env: BUILDTYPE=debug CXXFLAGS="--coverage" LDFLAGS="--coverage" - node_js: 10 - # Overrides `script` to publish coverage data to codecov - before_script: - - npm test - - mason install llvm-cov ${MASON_LLVM_RELEASE} - - mason link llvm-cov ${MASON_LLVM_RELEASE} - - which llvm-cov - - pip install --user codecov - - codecov --gcov-exec "llvm-cov gcov" - # avoid double-run of npm test - script: - - true - # Clang format build - - os: linux - # can be generic since we don't need nodejs to run formatting - language: generic - env: CLANG_FORMAT - # Overrides `install` to avoid initializing clang toolchain - install: - # Run the clang-format script. Any code formatting changes - # will trigger the build to fail (idea here is to get us to pay attention - # and get in the habit of running these locally before committing) - - make format - # Overrides `script`, no need to run tests - before_script: - # Clang tidy build - # - os: linux - # env: CLANG_TIDY - # node_js: 10 - # # Overrides `install` to avoid initializing clang toolchain - # install: - # # First run the clang-tidy target - # # Any code formatting fixes automatically applied by clang-tidy - # # will trigger the build to fail (idea here is to get us to pay attention - # # and get in the habit of running these locally before committing) - # - make tidy - # # Overrides `script`, no need to run tests - # before_script: + - stage: Build + # linux publishable node v8 + - os: linux + env: BUILDTYPE=release + node_js: 8 + # linux publishable node v8/debug + - os: linux + env: BUILDTYPE=debug + node_js: 8 + # linux publishable node v10 + - os: linux + env: BUILDTYPE=release + node_js: 10 + # linux publishable node v10/debug + - os: linux + env: BUILDTYPE=debug + node_js: 10 + # linux publishable node v12 + - os: linux + env: BUILDTYPE=release + node_js: 12 + # linux publishable node v14/debug + - os: linux + env: BUILDTYPE=debug + node_js: 14 + # linux publishable node v14 + - os: linux + env: BUILDTYPE=release + node_js: 14 + # linux publishable node v12/debug + - os: linux + env: BUILDTYPE=debug + node_js: 12 + # linux publishable node v16 + - os: linux + env: BUILDTYPE=release + node_js: 16 + # linux publishable node v16/debug + - os: linux + env: BUILDTYPE=debug + node_js: 16 + # osx publishable node v8 + - os: osx + osx_image: xcode11 + env: BUILDTYPE=release + node_js: 8 + # osx publishable node v10 + - os: osx + osx_image: xcode11 + env: BUILDTYPE=release + node_js: 10 + # osx publishable node v12 + - os: osx + osx_image: xcode11 + env: BUILDTYPE=release + node_js: 12 + # osx publishable node v14 + - os: osx + osx_image: xcode11 + env: BUILDTYPE=release + node_js: 14 + # osx publishable node v16 + - os: osx + osx_image: xcode11 + env: BUILDTYPE=release + node_js: 16 + # Sanitizer build node v10/Debug + - os: linux + env: BUILDTYPE=debug TOOLSET=asan + node_js: 10 + sudo: required + # Overrides `install` to set up custom asan flags + install: + - ./scripts/setup.sh --config local.env + # put mason and clang++ on PATH + - source local.env + # Note: to build without stopping on errors remove the -fno-sanitize-recover=all flag + # You might want to do this if there are multiple errors and you want to see them all before fixing + - export CXXFLAGS="${MASON_SANITIZE_CXXFLAGS} -fno-sanitize-recover=all" + - export LDFLAGS="${MASON_SANITIZE_LDFLAGS}" + - make ${BUILDTYPE} + # Overrides `script` to disable asan LD_PRELOAD before publishing + before_script: + - export LD_PRELOAD=${MASON_LLVM_RT_PRELOAD} + - export ASAN_OPTIONS=fast_unwind_on_malloc=0:${ASAN_OPTIONS} + - npm test + - unset LD_PRELOAD + # after successful tests, publish binaries if specified in commit message + # - ./scripts/publish.sh --toolset=${TOOLSET:-} --debug=$([ "${BUILDTYPE}" == 'debug' ] && echo "true" || echo "false") + script: + - true + # g++ build (default builds all use clang++) + - os: linux + # Note: -fext-numeric-literals is needed to workaround gcc bug: + # boost/math/constants/constants.hpp:269:3: error: unable to find numeric literal operator 'operatorQ' + env: BUILDTYPE=debug CXX="g++-9" CC="gcc-9" CXXFLAGS="-fext-numeric-literals" + node_js: 10 + addons: + apt: + sources: + - sourceline: "ppa:ubuntu-toolchain-r/test" + packages: + - libstdc++-10-dev + - g++-9 + # Overrides `install` to avoid initializing clang toolchain + install: + - make ${BUILDTYPE} + # Overrides `script` to disable publishing + before_script: + - npm test + # Coverage build + - os: linux + env: BUILDTYPE=debug CXXFLAGS="--coverage" LDFLAGS="--coverage" + node_js: 10 + # Overrides `script` to publish coverage data to codecov + before_script: + - npm test + - mason install llvm-cov ${MASON_LLVM_RELEASE} + - mason link llvm-cov ${MASON_LLVM_RELEASE} + - which llvm-cov + - pip install --user codecov + - codecov --gcov-exec "llvm-cov gcov" + # avoid double-run of npm test + script: + - true + # Clang format build + - os: linux + # can be generic since we don't need nodejs to run formatting + language: generic + env: CLANG_FORMAT + # Overrides `install` to avoid initializing clang toolchain + install: + # Run the clang-format script. Any code formatting changes + # will trigger the build to fail (idea here is to get us to pay attention + # and get in the habit of running these locally before committing) + - make format + # Overrides `script`, no need to run tests + before_script: + # Clang tidy build + # - os: linux + # env: CLANG_TIDY + # node_js: 10 + # # Overrides `install` to avoid initializing clang toolchain + # install: + # # First run the clang-tidy target + # # Any code formatting fixes automatically applied by clang-tidy + # # will trigger the build to fail (idea here is to get us to pay attention + # # and get in the habit of running these locally before committing) + # - make tidy + # # Overrides `script`, no need to run tests + # before_script: + - stage: Publish-Debug + script: echo "publishing debug" + - stage: Publish-Release + script: echo "publishing debug"