summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
authorRene Rivera <grafikrobot@gmail.com>2016-02-24 11:21:17 -0600
committerRene Rivera <grafikrobot@gmail.com>2016-02-24 11:21:17 -0600
commita672d3529676315235063c8a025e8be5b6bcdd40 (patch)
treebe170cb925fdda68178e8d5b4eda5e9952af72db /.travis.yml
parentb736004a967103fd43a033c9f5baaa50cc41a53e (diff)
downloadboost-a672d3529676315235063c8a025e8be5b6bcdd40.tar.gz
Merge release archive building CI from develop.
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml244
1 files changed, 240 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml
index 312d053abf..b1947d8465 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,244 @@
+# Use, modification, and distribution are
+# subject to the Boost Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+#
+# Copyright Rene Rivera 2015.
+
+branches:
+ only:
+ - master
+ - develop
+
+sudo: required
+
language: c
+
compiler:
- gcc
+
+git:
+ # We avoid fetching submodules so that we can set the EOL
+ # style to fetch them as needed.
+ submodules: false
+
+addons:
+ apt:
+ packages:
+ - p7zip-full
+ - docutils-common
+ - docutils-doc
+ - docbook
+ - docbook-xml
+ - docbook-xsl
+ - xsltproc
+ - doxygen
+ - dvipsk-ja
+ - texlive
+
+env:
+ global:
+ - secure: "DC12OV65iyBzELywj19yI4S8DmmBmZO8hbT3Iq0kJ4yo0aMQzzJDsVpmm2Jwk/Qf/yLyBsAhkpanScJJ9eEekmK8OZN8H9EJ1kgai58IWk0gWKKzJ0lyQH/vsYEyfxCSwqejoIdd07nQh5B/1L5Th3I2vLT2udHUPU2Np/MKgUw="
+ matrix:
+ - TRAVIS_EMPTY_JOB_WORKAROUND=true
+
+matrix:
+ exclude:
+ - env: TRAVIS_EMPTY_JOB_WORKAROUND=true
+ include:
+ # Simple integrated status tests check.
+ - env: STATUS_TESTS=true
+
+ # Build release package for LF end-of-line style text files.
+ - env: RELEASE_BUILD=LF
+
+ # Build release package for CRLF end-of-line style text files (i.e. for Windows).
+ - env: RELEASE_BUILD=CRLF
+
+install:
+ # Set where we will place all our build byproducts.
+ - |
+ export "BOOST_BUILD_DIR=${TRAVIS_BUILD_DIR}/../build"
+
+ # We use RapidXML for some doc building tools.
+ - |
+ cd "${TRAVIS_BUILD_DIR}/.."
+ wget -O rapidxml.zip http://sourceforge.net/projects/rapidxml/files/latest/download
+ unzip -n -d rapidxml rapidxml.zip
+ export RAPIDXML=`ls -1d ${PWD}/rapidxml/rapidxml-*`
+ # Need docutils for building some docs.
+ - |
+ sudo pip install docutils
+
+before_script:
+ # Fail the whole script whenever any command fails
+ - |
+ set -e
+
+ # Fetch the rest of the Boost submodules in the appropriate
+ # EOL style.
+ - |
+ if [[ "${STATUS_TESTS}" == "true" ]]; then
+ cd "${TRAVIS_BUILD_DIR}"
+ git submodule update --init --recursive
+ fi
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}"
+ git config core.eol lf
+ git config core.autocrlf false
+ git rm --cache -r .
+ git reset --quiet --hard HEAD
+ git submodule update --init --recursive
+ fi
+ - |
+ if [[ "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}"
+ git config core.eol crlf
+ git config core.autocrlf false
+ git rm --cache -r .
+ git reset --quiet --hard HEAD
+ git submodule update --init --recursive
+ fi
+
script:
- - ./bootstrap.sh
- - ./b2 -n
- - cd status
- - ../b2 -n -d0
+ # Simple integrated status tests check. Currently this only
+ # veryfies that we will not get build system errors from things
+ # like missing test files.
+ - |
+ if [[ "${STATUS_TESTS}" == "true" ]]; then
+ cd "${TRAVIS_BUILD_DIR}"
+ ./bootstrap.sh
+ ./b2 -n
+ cd status
+ ../b2 -n -d0
+ fi
+
+ # Build a packaged release. This involves building a fresh set
+ # of docs and selectively packging parts of the tree. We try and
+ # avoid creating extra files in the base tree to avoid including
+ # extra stuff in the archives. Which means that we reset the git
+ # tree state to cleanup after building.
+
+ # Set up where we will "install" built tools.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ mkdir -p "${BOOST_BUILD_DIR}/dist/bin"
+ export "PATH=${BOOST_BUILD_DIR}/dist/bin:${PATH}"
+ fi
+
+ # Bootstrap Boost Build engine.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/tools/build"
+ ./bootstrap.sh
+ cp -p b2 "${BOOST_BUILD_DIR}/dist/bin/b2"
+ git clean -dfqx
+ fi
+
+ # Generate include dir structure.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}"
+ b2 -q -d0 headers
+ fi
+
+ # Build doxygen_xml2qbk for building Boost Geometry docs.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk"
+ b2 -q -d0 --build-dir="${BOOST_BUILD_DIR}" --distdir="${BOOST_BUILD_DIR}/dist"
+ cd "${TRAVIS_BUILD_DIR}/libs/geometry"
+ git clean -dfqx
+ fi
+
+ # Build Quickbook documentation tool.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/tools/quickbook"
+ b2 -q -d0 --build-dir="${BOOST_BUILD_DIR}" --distdir="${BOOST_BUILD_DIR}/dist"
+ git clean -dfqx
+ fi
+
+ # Build auto-index documentation tool.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/tools/auto_index/build"
+ b2 -q -d0 --build-dir="${BOOST_BUILD_DIR}" --distdir="${BOOST_BUILD_DIR}/dist"
+ cd "${TRAVIS_BUILD_DIR}/tools/auto_index"
+ git clean -dfqx
+ fi
+
+ # Set up build config.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ echo "using quickbook : \"${BOOST_BUILD_DIR}/dist/bin/quickbook\" ;" >> "${HOME}/user-config.jam"
+ echo "using auto-index : \"${BOOST_BUILD_DIR}/dist/bin/auto_index\" ;" >> "${HOME}/user-config.jam"
+ echo "using docutils ;" >> "${HOME}/user-config.jam"
+ echo "using doxygen ;" >> "${HOME}/user-config.jam"
+ fi
+
+ # Pre-build Boost Geometry docs.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/libs/geometry/doc"
+ python make_qbk.py --release-build
+ fi
+
+ # Build the full docs, and all the submodule docs.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/doc"
+ (while true ; do sleep 60 && echo "[[ ALIVE? ]]" ; done ;) &
+ AWAKE_PID=$!
+ b2 -q -d0 --build-dir="${BOOST_BUILD_DIR}" --distdir="${BOOST_BUILD_DIR}/dist" --release-build --enable-index
+ kill $AWAKE_PID
+ fi
+
+ # Make the real distribution tree from the base tree. The
+ # distribution tree is "marked" with the commit hash to be
+ # able to track a package to the commit we test.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" || "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/.."
+ wget "https://raw.githubusercontent.com/boostorg/release-tools/develop/MakeBoostDistro.py"
+ chmod +x MakeBoostDistro.py
+ export BOOST_RELEASE=boost_${TRAVIS_BRANCH}_${TRAVIS_COMMIT}
+ ./MakeBoostDistro.py "${TRAVIS_BUILD_DIR}" "${BOOST_RELEASE}"
+ fi
+
+ # Create packages for LF style content.
+ - |
+ if [[ "${RELEASE_BUILD}" == "LF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/.."
+ tar -zcf "${BOOST_RELEASE}.tar.gz" "${BOOST_RELEASE}"
+ tar -cjf "${BOOST_RELEASE}.tar.bz2" "${BOOST_RELEASE}"
+ ls -la
+ fi
+
+ # Create packages for CRLF style content.
+ - |
+ if [[ "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/.."
+ zip -qr "${BOOST_RELEASE}.zip" "${BOOST_RELEASE}"
+ 7z a -r "${BOOST_RELEASE}.7z" "${BOOST_RELEASE}" > /dev/null
+ ls -la
+ fi
+
+after_success:
+ # Publish created packages depending on the EOL style and branch.
+ # We post archives to distribution services. But currently we only
+ # post master packages as they happen less often. And we are
+ # unlikely to ever want anything else as a package for the
+ # releases.
+ - |
+ if [[ "${TRAVIS_BRANCH}" == "master" && "${RELEASE_BUILD}" == "LF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/.."
+ curl -v -T "${BOOST_RELEASE}.tar.gz" "-ugrafikrobot:${BINTRAY}" "https://api.bintray.com/content/boostorg/snapshots/${TRAVIS_BRANCH}/${TRAVIS_COMMIT}/${BOOST_RELEASE}.tar.gz?publish=1"
+ curl -v -T "${BOOST_RELEASE}.tar.bz2" "-ugrafikrobot:${BINTRAY}" "https://api.bintray.com/content/boostorg/snapshots/${TRAVIS_BRANCH}/${TRAVIS_COMMIT}/${BOOST_RELEASE}.tar.bz2?publish=1"
+ fi
+ - |
+ if [[ "${TRAVIS_BRANCH}" == "master" && "${RELEASE_BUILD}" == "CRLF" ]]; then
+ cd "${TRAVIS_BUILD_DIR}/.."
+ curl -v -T "${BOOST_RELEASE}.zip" "-ugrafikrobot:${BINTRAY}" "https://api.bintray.com/content/boostorg/snapshots/${TRAVIS_BRANCH}/${TRAVIS_COMMIT}/${BOOST_RELEASE}.zip?publish=1"
+ curl -v -T "${BOOST_RELEASE}.7z" "-ugrafikrobot:${BINTRAY}" "https://api.bintray.com/content/boostorg/snapshots/${TRAVIS_BRANCH}/${TRAVIS_COMMIT}/${BOOST_RELEASE}.7z?publish=1"
+ fi