mirror of
https://github.com/boostorg/boost.git
synced 2025-04-06 22:14:59 +00:00
Merge release archive building CI from develop.
This commit is contained in:
parent
b736004a96
commit
a672d35296
1 changed files with 240 additions and 4 deletions
244
.travis.yml
244
.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
|
||||
|
|
Loading…
Add table
Reference in a new issue