# # Copyright (c) 2019-2022 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) # # 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) # name: Build on: push: branches-ignore: [gh-pages] jobs: linux-cmake: runs-on: ubuntu-latest strategy: matrix: include: - { name: clang-debug, image: build-cmake-clang12, build-type: Debug, valgrind: 1, coverage: 0, db: mysql8 } - { name: clang-release, image: build-cmake-clang12, build-type: Release, valgrind: 0, coverage: 0, db: mysql8 } - { name: coverage, image: build-cmake-gcc11, build-type: Debug, valgrind: 0, coverage: 1, db: mysql8 } - { name: gcc-debug, image: build-cmake-gcc11, build-type: Debug, valgrind: 1, coverage: 0, db: mysql8 } - { name: gcc-release, image: build-cmake-gcc11, build-type: Release, valgrind: 0, coverage: 0, db: mysql8 } - { name: mysql5, image: build-cmake-clang12, build-type: Debug, valgrind: 0, coverage: 0, db: mysql5 } - { name: mariadb, image: build-cmake-clang12, build-type: Debug, valgrind: 0, coverage: 0, db: mariadb } container: image: ghcr.io/anarthal/${{ matrix.image }}:latest volumes: - /var/run/mysqld:/var/run/mysqld services: mysql: image: ghcr.io/anarthal/${{ matrix.db }}:latest ports: - 3306:3306 volumes: - /var/run/mysqld:/var/run/mysqld options: >- --health-cmd "mysqladmin ping -h localhost" --health-interval 10s --health-timeout 5s --health-retries 5 env: BOOST_MYSQL_SERVER_HOST: mysql # This should match the service name in this yml BOOST_MYSQL_DATABASE: ${{ matrix.db }} CMAKE_BUILD_TYPE: ${{ matrix.build-type }} USE_VALGRIND: ${{ matrix.valgrind }} USE_COVERAGE: ${{ matrix.coverage }} CMAKE_CXX_STANDARD: 20 steps: - uses: actions/checkout@v2 - run: bash tools/build_linux_cmake.sh linux-b2: runs-on: ubuntu-latest strategy: matrix: include: - { name: clang-3.6, image: build-b2-clang3_6, stdlib: native, cxxstd: '14' } - { name: clang-7, image: build-b2-clang7, stdlib: native, cxxstd: '17' } - { name: clang-11, image: build-b2-clang11, stdlib: native, cxxstd: '20' } - { name: clang-12, image: build-b2-clang12, stdlib: native, cxxstd: '11,14,17,20' } - { name: clang-libc++, image: build-b2-clang12, stdlib: libc++, cxxstd: '20' } - { name: gcc-5, image: build-b2-gcc5, stdlib: native, cxxstd: '11,14' } - { name: gcc-6, image: build-b2-gcc6, stdlib: native, cxxstd: '17' } - { name: gcc-10, image: build-b2-gcc10, stdlib: native, cxxstd: '20' } - { name: gcc-11, image: build-b2-gcc11, stdlib: native, cxxstd: '11,14,17,20' } container: image: ghcr.io/anarthal/${{ matrix.image }}:latest volumes: - /var/run/mysqld:/var/run/mysqld services: mysql: image: ghcr.io/anarthal/mysql8:latest ports: - 3306:3306 volumes: - /var/run/mysqld:/var/run/mysqld options: >- --health-cmd "mysqladmin ping -h localhost" --health-interval 10s --health-timeout 5s --health-retries 5 env: BOOST_MYSQL_SERVER_HOST: mysql # This should match the service name in this yml B2_VARIANT: debug,release B2_CXXSTD: ${{ matrix.cxxstd }} B2_STDLIB: ${{ matrix.stdlib }} steps: - uses: actions/checkout@v2 - run: bash tools/build_unix_b2.sh osx: runs-on: macos-latest env: BOOST_MYSQL_SERVER_HOST: 127.0.0.1 # Force use IPv4 OPENSSL_ROOT: /usr/local/opt/openssl B2_VARIANT: debug,release B2_CXXSTD: 17 B2_STDLIB: native steps: - uses: actions/checkout@v2 - run: bash tools/setup_db_osx.sh - run: bash tools/build_unix_b2.sh