diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..125ef33 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,63 @@ +# Copyright 2020 Alexander Grund +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) + +name: Release + +on: + push: + branches: [master] + tags: ['v*'] + +jobs: + release: + name: Create Release + runs-on: ubuntu-latest + env: + BOOST_VERSION: 1.71.0 + BOOST_ROOT: ${{github.workspace}}/dependencies/boost + steps: + - uses: actions/checkout@v2 + - uses: actions/checkout@v2 + with: + repository: boostorg/boost + ref: boost-${{env.BOOST_VERSION}} + path: ${{env.BOOST_ROOT}} + fetch-depth: 1 + - name: Prepare boost + working-directory: ${{env.BOOST_ROOT}} + run: | + git submodule update --init --jobs 3 tools/boostdep tools/quickbook tools/boostbook + python tools/boostdep/depinst/depinst.py --exclude test --git_args '--jobs 3' ../tools/quickbook + ./bootstrap.sh || (cat bootstrap.log && false) + - name: Install dependencies + run: sudo apt-get install xsltproc docbook-xsl docbook-xml + - name: Create documentation + run: scripts/build_doc.sh -j3 + - name: Package documentation + run: tar -czvf turtle_doc.tar.gz html + working-directory: doc + # This runs only when actual tags are created + - name: Create Release + if: startsWith(github.ref, 'refs/tags/') + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + body: | + C++ mock object library for Boost + draft: true + prerelease: false + - name: Upload docs + if: startsWith(github.ref, 'refs/tags/') + uses: actions/upload-release-asset@v1.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: doc/turtle_doc.tar.gz + asset_name: turtle_doc.tar.gz + asset_content_type: application/tar.gz diff --git a/Jamfile.v2 b/Jamfile.v2 deleted file mode 100644 index a373100..0000000 --- a/Jamfile.v2 +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright Rene Rivera 2007. -# -# Distributed under 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) - -# Usage: -# -# bjam [options | properties | targets] -# -# Options: -# -# --boost= The directory of a Boost source tree. -# Default; BOOST env var (if found) -# Default; ../boost (if found) -# -# --boost-build= -# The directory for the Boost.Build v2 files. -# Default; BOOST_BUILD_PATH env var (if found) -# Default; BOOST_BUILD env var (if found) -# Default; /tools/build/v2 (if found) - -#~ If we have the Boost sources we can use the project... - -if [ GLOB $(BOOST) : [ modules.peek project : JAMFILE ] ] -{ - use-project /boost : $(BOOST) ; -} diff --git a/Jamroot.jam b/Jamroot.jam index 8797198..df7f2f9 100644 --- a/Jamroot.jam +++ b/Jamroot.jam @@ -6,9 +6,11 @@ import modules ; -local boost = [ modules.peek : BOOST ] ; +if BOOST_ROOT +{ + local boost = [ modules.peek : BOOST_ROOT ] ; -project mock : requirements $(boost) . ; + project mock : requirements $(boost) ; -# This seems to prevent some Boost.Build errors that otherwise occur :-( -use-project /boost : $(boost) ; + #use-project /boost : $(boost) ; +} diff --git a/build/build.sh b/build/build.sh index 33aa058..9779b25 100755 --- a/build/build.sh +++ b/build/build.sh @@ -5,13 +5,6 @@ # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -copy() -{ - for dir; do true; done - mkdir -p "$dir" - cp "$@" -} - set -eux export BOOST="$BOOST_ROOT" @@ -21,13 +14,7 @@ cd "$BOOST" ./b2 "$PROJECT_DIR/test" -q "$@" cd "$PROJECT_DIR" -export BOOSTBOOK_DIR="$PROJECT_DIR/bin/turtle/boostbook" -copy -r "$BOOST"/tools/boostbook/xsl "$BOOSTBOOK_DIR" -copy -r "$BOOST"/tools/boostbook/dtd "$BOOSTBOOK_DIR" -copy -r build/boostbook/* "$BOOSTBOOK_DIR" -copy "$BOOST"/doc/src/boostbook.css doc/html -copy "$BOOST"/doc/src/images/*.png doc/html/images -copy "$BOOST"/doc/src/images/callouts/*.png doc/html/images/callouts +scripts/build_doc.sh "$@" cd "$BOOST" -./b2 "$PROJECT_DIR/doc" -q "$@" +./b2 "$PROJECT_DIR/doc//mock_examples" -q "$@" diff --git a/doc/Jamfile.jam b/doc/Jamfile.jam index bf5b54d..907d8bd 100644 --- a/doc/Jamfile.jam +++ b/doc/Jamfile.jam @@ -46,7 +46,15 @@ project example rule compile-examples { - for name in [ glob example/*.cpp ] { compile $(name) ; } + local examples ; + for name in [ glob example/*.cpp ] + { + local compile-target = [ compile $(name) ] ; + explicit $(compile-target) ; + examples += $(compile-target) ; + } + return $(examples) ; } alias mock_examples : [ compile-examples ] ; +explicit mock_examples ; diff --git a/scripts/build_doc.sh b/scripts/build_doc.sh new file mode 100755 index 0000000..d0e4830 --- /dev/null +++ b/scripts/build_doc.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Copyright (C) 2015 Mathieu Champlon +# +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) + +# Execute from repo root folder or set PROJECT_DIR +# Requires BOOST_ROOT to be set + +set -eu + +copy() +{ + for dir; do true; done + mkdir -p "$dir" + cp "$@" +} + +PROJECT_DIR="${PROJECT_DIR:-$(pwd)}" + +export BOOSTBOOK_DIR="${PROJECT_DIR}/bin/turtle/boostbook" +copy -r "$BOOST_ROOT"/tools/boostbook/xsl "$BOOSTBOOK_DIR" +copy -r "$BOOST_ROOT"/tools/boostbook/dtd "$BOOSTBOOK_DIR" +copy -r build/boostbook/* "$BOOSTBOOK_DIR" +copy "$BOOST_ROOT"/doc/src/boostbook.css doc/html +copy "$BOOST_ROOT"/doc/src/images/*.png doc/html/images +copy "$BOOST_ROOT"/doc/src/images/callouts/*.png doc/html/images/callouts + +cd "$BOOST_ROOT" +./b2 "$PROJECT_DIR/doc" -q "$@"