From b0f80684fd7ed3cd171daca36cebaa595085b785 Mon Sep 17 00:00:00 2001 From: sdarwin Date: Tue, 2 Mar 2021 14:54:00 +0000 Subject: [PATCH 1/3] Add GitHub Actions config [ci skip] --- .github/workflows/ci.yml | 439 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 439 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..7b926e27 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,439 @@ +name: GitHub Actions CI + +on: + pull_request: + push: + branches: + - master + - develop + - githubactions* + - feature/** + - fix/** + - pr/** + +jobs: + posix: + strategy: + fail-fast: false + matrix: + include: + - name: "TOOLSET=gcc-4.4 CXXSTD=98,0x Job 0" + buildtype: "boost" + packages: "g++-4.4" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-4.4" + cxxstd: "98,0x" + - name: "TOOLSET=gcc-4.6 CXXSTD=03,0x Job 1" + buildtype: "boost" + packages: "g++-4.6" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-4.6" + cxxstd: "03,0x" + - name: "TOOLSET=gcc-4.7 CXXSTD=03,11 Job 2" + buildtype: "boost" + packages: "g++-4.7" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-4.7" + cxxstd: "03,11" + - name: "TOOLSET=gcc-4.8 CXXSTD=03,11,1y Job 3" + buildtype: "boost" + packages: "g++-4.8" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-4.8" + cxxstd: "03,11,1y" + - name: "TOOLSET=gcc-4.9 CXXSTD=03,11,14 Job 4" + buildtype: "boost" + packages: "g++-4.9" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-4.9" + cxxstd: "03,11,14" + - name: "TOOLSET=gcc-5 CXXSTD=03,11,14,17 Job 5" + buildtype: "boost" + packages: "g++-5" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-5" + cxxstd: "03,11,14,17" + - name: "TOOLSET=gcc-6 CXXSTD=03,11,14,17 Job 6" + buildtype: "boost" + packages: "g++-6" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-6" + cxxstd: "03,11,14,17" + - name: "TOOLSET=gcc-7 CXXSTD=03,11,14,17 Job 7" + buildtype: "boost" + packages: "g++-7" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-7" + cxxstd: "03,11,14,17" + - name: "TOOLSET=gcc-8 CXXSTD=03,11,14,17,2a Job 8" + buildtype: "boost" + packages: "g++-8" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "gcc-8" + cxxstd: "03,11,14,17,2a" + - name: "TOOLSET=clang-3.5 CXXSTD=03,11,14,1z Job 9" + buildtype: "boost" + packages: "clang-3.5" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "clang-3.5" + cxxstd: "03,11,14" + - name: "TOOLSET=clang-3.6 CXXSTD=03,11,14,1z Job 10" + buildtype: "boost" + packages: "clang-3.6" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "clang-3.6" + cxxstd: "03,11,14" + - name: "TOOLSET=clang-3.7 CXXSTD=03,11,14,1z Job 11" + buildtype: "boost" + packages: "clang-3.7" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "clang-3.7" + cxxstd: "03,11,14" + - name: "TOOLSET=clang-3.8 CXXSTD=03,11,14,1z Job 12" + buildtype: "boost" + packages: "clang-3.8" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "clang-3.8" + cxxstd: "03,11,14" + - name: "TOOLSET=clang-3.9 CXXSTD=03,11,14,1z Job 13" + buildtype: "boost" + packages: "clang-3.9" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "clang-3.9" + cxxstd: "03,11,14" + - name: "TOOLSET=clang-4.0 CXXSTD=03,11,14,1z Job 14" + buildtype: "boost" + packages: "clang-4.0" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "" + llvm_ver: "" + toolset: "clang-4.0" + cxxstd: "03,11,14" + - name: "TOOLSET=clang-5.0 CXXSTD=03,11,14,17,2a Job 15" + buildtype: "boost" + packages: "clang-5.0" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "xenial" + llvm_ver: "5.0" + toolset: "clang-5.0" + cxxstd: "03,11,14,17,2a" + - name: "TOOLSET=clang-6.0 CXXSTD=03,11,14,17,2a Job 16" + buildtype: "boost" + packages: "clang-6.0" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "xenial" + llvm_ver: "6.0" + toolset: "clang-6.0" + cxxstd: "03,11,14,17,2a" + - name: "TOOLSET=clang-7.0 CXXSTD=03,11,14,17,2a Job 17" + buildtype: "boost" + packages: "clang-7" + packages_to_remove: "" + os: "ubuntu-16.04" + cxx: "g++" + sources: "" + llvm_os: "xenial" + llvm_ver: "7" + toolset: "clang-7.0" + cxxstd: "03,11,14,17,2a" + + runs-on: ${{ matrix.os }} + container: ${{ matrix.container }} + + steps: + - name: Check if running in container + if: matrix.container != '' + run: echo "GHA_CONTAINER=${{ matrix.container }}" >> $GITHUB_ENV + + - uses: actions/checkout@v2 + + - name: linux + shell: bash + env: + CXX: ${{ matrix.cxx }} + SOURCES: ${{ matrix.sources }} + LLVM_OS: ${{ matrix.llvm_os }} + LLVM_VER: ${{ matrix.llvm_ver }} + PACKAGES: ${{ matrix.packages }} + PACKAGES_TO_REMOVE: ${{ matrix.packages_to_remove }} + JOB_BUILDTYPE: ${{ matrix.buildtype }} + TOOLSET: ${{ matrix.toolset }} + CXXSTD: ${{ matrix.cxxstd }} + COMPILER: ${{ matrix.compiler }} + TRAVIS_BRANCH: ${{ github.base_ref }} + TRAVIS_OS_NAME: "linux" + run: | + echo '==================================> SETUP' + echo '==================================> PACKAGES' + set -e + if [ -n "$PACKAGES_TO_REMOVE" ]; then sudo apt-get purge -y $PACKAGES_TO_REMOVE; fi + echo ">>>>> APT: REPO.." + for i in {1..3}; do sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test" && break || sleep 2; done + + if test -n "${LLVM_OS}" ; then + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + if test -n "${LLVM_VER}" ; then + sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS}-${LLVM_VER} main" + else + # Snapshot (i.e. trunk) build of clang + sudo -E apt-add-repository "deb http://apt.llvm.org/${LLVM_OS}/ llvm-toolchain-${LLVM_OS} main" + fi + fi + echo ">>>>> APT: UPDATE.." + sudo -E apt-get -o Acquire::Retries=3 update + if test -n "${SOURCES}" ; then + echo ">>>>> APT: INSTALL SOURCES.." + for SOURCE in $SOURCES; do + sudo -E apt-add-repository ppa:$SOURCE + done + fi + echo ">>>>> APT: INSTALL ${PACKAGES}.." + sudo -E DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Retries=3 -y --no-install-suggests --no-install-recommends install ${PACKAGES} + + echo '==================================> INSTALL AND COMPILE' + set -e + export TRAVIS_BUILD_DIR=$(pwd) + export TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')} + export VCS_COMMIT_ID=$GITHUB_SHA + export GIT_COMMIT=$GITHUB_SHA + export REPO_NAME=$(basename $GITHUB_REPOSITORY) + export USER=$(whoami) + export CC=${CC:-gcc} + export PATH=~/.local/bin:/usr/local/bin:$PATH + + if [ "$JOB_BUILDTYPE" == "boost" ]; then + + echo '==================================> INSTALL' + + BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true + cd .. + git clone --depth 1 -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root + cd boost-root + git submodule init libs/array + git submodule init libs/assert + git submodule init libs/bind + git submodule init libs/concept_check + git submodule init libs/config + git submodule init libs/container_hash + git submodule init libs/conversion + git submodule init libs/core + git submodule init libs/detail + git submodule init libs/function + git submodule init libs/function_types + git submodule init libs/functional + git submodule init libs/integer + git submodule init libs/iterator + git submodule init libs/lambda + git submodule init libs/move + git submodule init libs/mpl + git submodule init libs/optional + git submodule init libs/predef + git submodule init libs/preprocessor + git submodule init libs/smart_ptr + git submodule init libs/static_assert + git submodule init libs/throw_exception + git submodule init libs/tuple + git submodule init libs/type_index + git submodule init libs/type_traits + git submodule init libs/typeof + git submodule init libs/utility + git submodule init libs/headers tools/boost_install tools/build + git submodule update + rm -rf libs/fusion + cp -rp $TRAVIS_BUILD_DIR libs/fusion + ln -s $(pwd)/libs/fusion $TRAVIS_BUILD_DIR + ./bootstrap.sh + ./b2 headers + + echo '==================================> SCRIPT' + + ./b2 -j`(nproc || sysctl -n hw.ncpu) 2> /dev/null` libs/fusion/test toolset=$TOOLSET cxxstd=$CXXSTD + + fi + osx: + strategy: + fail-fast: false + matrix: + include: + - name: "TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,1 Job 18" + buildtype: "boost" + packages: "" + os: "macos-10.15" + cxx: "clang++" + sources: "" + llvm_os: "" + llvm_ver: "" + xcode_version: 11.7 + toolset: "clang" + compiler: "clang++" + cxxstd: "03,11,14,1z" + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + + - name: Set DEVELOPER_DIR + if: matrix.xcode_version != '' + run: echo "DEVELOPER_DIR=/Applications/Xcode_${{ matrix.xcode_version }}.app/Contents/Developer" >> $GITHUB_ENV + - name: Test DEVELOPER_DIR + run: echo $DEVELOPER_DIR + + - name: "osx" + shell: bash + env: + CXX: ${{ matrix.cxx }} + SOURCES: ${{ matrix.sources }} + LLVM_OS: ${{ matrix.llvm_os }} + LLVM_VER: ${{ matrix.llvm_ver }} + PACKAGES: ${{ matrix.packages }} + JOB_BUILDTYPE: ${{ matrix.buildtype }} + TOOLSET: ${{ matrix.toolset }} + CXXSTD: ${{ matrix.cxxstd }} + COMPILER: ${{ matrix.compiler }} + TRAVIS_BRANCH: ${{ github.base_ref }} + TRAVIS_OS_NAME: "osx" + run: | + echo '==================================> SETUP' + set -e + sudo mv /Library/Developer/CommandLineTools /Library/Developer/CommandLineTools.bck + echo '==================================> PACKAGES' + echo '==================================> INSTALL AND COMPILE' + set -e + export TRAVIS_BUILD_DIR=$(pwd) + export TRAVIS_BRANCH=${TRAVIS_BRANCH:-$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')} + export VCS_COMMIT_ID=$GITHUB_SHA + export GIT_COMMIT=$GITHUB_SHA + export REPO_NAME=$(basename $GITHUB_REPOSITORY) + export USER=$(whoami) + export CC=${CC:-gcc} + export PATH=~/.local/bin:/usr/local/bin:$PATH + + if [ "$JOB_BUILDTYPE" == "boost" ]; then + + echo '==================================> INSTALL' + + BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true + cd .. + git clone --depth 1 -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root + cd boost-root + git submodule init libs/array + git submodule init libs/assert + git submodule init libs/bind + git submodule init libs/concept_check + git submodule init libs/config + git submodule init libs/container_hash + git submodule init libs/conversion + git submodule init libs/core + git submodule init libs/detail + git submodule init libs/function + git submodule init libs/function_types + git submodule init libs/functional + git submodule init libs/integer + git submodule init libs/iterator + git submodule init libs/lambda + git submodule init libs/move + git submodule init libs/mpl + git submodule init libs/optional + git submodule init libs/predef + git submodule init libs/preprocessor + git submodule init libs/smart_ptr + git submodule init libs/static_assert + git submodule init libs/throw_exception + git submodule init libs/tuple + git submodule init libs/type_index + git submodule init libs/type_traits + git submodule init libs/typeof + git submodule init libs/utility + git submodule init libs/headers tools/boost_install tools/build + git submodule update + rm -rf libs/fusion + cp -rp $TRAVIS_BUILD_DIR libs/fusion + ln -s $(pwd)/libs/fusion $TRAVIS_BUILD_DIR + ./bootstrap.sh + ./b2 headers + + echo '==================================> SCRIPT' + + ./b2 -j`(nproc || sysctl -n hw.ncpu) 2> /dev/null` libs/fusion/test toolset=$TOOLSET cxxstd=$CXXSTD + + fi From 427d46e7dc405e9099318f2ce6c0e72fe0ce82f1 Mon Sep 17 00:00:00 2001 From: denzor200 Date: Mon, 24 Jan 2022 23:27:28 +0400 Subject: [PATCH 2/3] [githubactions] Fixed CI --- .github/workflows/ci.yml | 70 ++++++++++++++++++++++++++++------------ 1 file changed, 49 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b926e27..884233ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,8 @@ jobs: buildtype: "boost" packages: "g++-4.4" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -32,7 +33,8 @@ jobs: buildtype: "boost" packages: "g++-4.6" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -43,7 +45,8 @@ jobs: buildtype: "boost" packages: "g++-4.7" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -54,7 +57,8 @@ jobs: buildtype: "boost" packages: "g++-4.8" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -65,7 +69,8 @@ jobs: buildtype: "boost" packages: "g++-4.9" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -76,7 +81,8 @@ jobs: buildtype: "boost" packages: "g++-5" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -87,7 +93,8 @@ jobs: buildtype: "boost" packages: "g++-6" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -98,7 +105,8 @@ jobs: buildtype: "boost" packages: "g++-7" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -109,7 +117,8 @@ jobs: buildtype: "boost" packages: "g++-8" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -120,7 +129,8 @@ jobs: buildtype: "boost" packages: "clang-3.5" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -131,7 +141,8 @@ jobs: buildtype: "boost" packages: "clang-3.6" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -142,7 +153,8 @@ jobs: buildtype: "boost" packages: "clang-3.7" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -153,7 +165,8 @@ jobs: buildtype: "boost" packages: "clang-3.8" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -164,7 +177,8 @@ jobs: buildtype: "boost" packages: "clang-3.9" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -175,7 +189,8 @@ jobs: buildtype: "boost" packages: "clang-4.0" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "" @@ -186,7 +201,8 @@ jobs: buildtype: "boost" packages: "clang-5.0" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "xenial" @@ -197,23 +213,25 @@ jobs: buildtype: "boost" packages: "clang-6.0" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "xenial" llvm_ver: "6.0" toolset: "clang-6.0" cxxstd: "03,11,14,17,2a" - - name: "TOOLSET=clang-7.0 CXXSTD=03,11,14,17,2a Job 17" + - name: "TOOLSET=clang-7 CXXSTD=03,11,14,17,2a Job 17" buildtype: "boost" packages: "clang-7" packages_to_remove: "" - os: "ubuntu-16.04" + os: "ubuntu-20.04" + container: "ubuntu:16.04" cxx: "g++" sources: "" llvm_os: "xenial" llvm_ver: "7" - toolset: "clang-7.0" + toolset: "clang-7" cxxstd: "03,11,14,17,2a" runs-on: ${{ matrix.os }} @@ -223,6 +241,16 @@ jobs: - name: Check if running in container if: matrix.container != '' run: echo "GHA_CONTAINER=${{ matrix.container }}" >> $GITHUB_ENV + - name: If running in container, upgrade packages + if: matrix.container != '' + run: | + apt-get -o Acquire::Retries=3 update && DEBIAN_FRONTEND=noninteractive apt-get -y install tzdata && apt-get -o Acquire::Retries=3 install -y sudo software-properties-common wget curl apt-transport-https make apt-file sudo unzip libssl-dev build-essential autotools-dev autoconf automake g++ libc++-helpers python ruby cpio gcc-multilib g++-multilib pkgconf python3 ccache libpython-dev + sudo apt-add-repository ppa:git-core/ppa + sudo apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 -y install git + python_version=$(python3 -c 'import sys; print("{0.major}.{0.minor}".format(sys.version_info))') + sudo wget https://bootstrap.pypa.io/pip/$python_version/get-pip.py + sudo python3 get-pip.py + sudo /usr/local/bin/pip install cmake - uses: actions/checkout@v2 @@ -436,4 +464,4 @@ jobs: ./b2 -j`(nproc || sysctl -n hw.ncpu) 2> /dev/null` libs/fusion/test toolset=$TOOLSET cxxstd=$CXXSTD - fi + fi \ No newline at end of file From 9a2f490130c02ebcc85bbd3dd1ab20acdc152752 Mon Sep 17 00:00:00 2001 From: denzor200 Date: Mon, 24 Jan 2022 23:40:18 +0400 Subject: [PATCH 3/3] [githubactions] Fixed reverse_view test for C++03 --- test/sequence/reverse_view.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/sequence/reverse_view.cpp b/test/sequence/reverse_view.cpp index aded1522..356b9b0b 100644 --- a/test/sequence/reverse_view.cpp +++ b/test/sequence/reverse_view.cpp @@ -119,7 +119,7 @@ main() && at_key< boost::mpl::int_<0> >(rev) == "new_zero" )); BOOST_MPL_ASSERT((boost::mpl::and_ > , boost::mpl::not_ > > >)); - BOOST_MPL_ASSERT((boost::is_same>::type, std::string&>)); + BOOST_MPL_ASSERT((boost::is_same >::type, std::string&>)); BOOST_MPL_ASSERT((boost::is_same >::type, std::string>)); }