From db54e5dd1a1eb580d0dcef3143428ca6169fdcc5 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Thu, 19 Sep 2024 08:32:07 +1000 Subject: [PATCH] Added ubuntu-24.04 github actions runner with C++23 testing. --- .github/workflows/actions_build.yml | 131 ++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/.github/workflows/actions_build.yml b/.github/workflows/actions_build.yml index 9f29b83..6650a87 100644 --- a/.github/workflows/actions_build.yml +++ b/.github/workflows/actions_build.yml @@ -197,6 +197,70 @@ jobs: run: cmake --build . --config ${{matrix.type}} env: VERBOSE: 1 + + build_gcc_ubuntu_24_04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + type: [Debug, Release, MinSizeRel] + cc_ver: [13, 14] + cpp: [11, 14, 17, 20, 23] + qt_ver: [5, 6] + exclude: + - cc_ver: 13 + cpp: 23 + + steps: + - uses: actions/checkout@v4 + + - name: Prepare Install + run: sudo apt-get update --fix-missing + + - name: Install Packages + run: | + sudo apt install libqt${{matrix.qt_ver}}gui${{matrix.qt_ver}} qtbase5-dev qt6-base-dev libboost-all-dev libxml2-dev gcc-${{matrix.cc_ver}} g++-${{matrix.cc_ver}} \ + python3 libpython3-dev swig default-jdk default-jre emscripten + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Prepare externals + shell: bash + run: $GITHUB_WORKSPACE/script/prepare_externals.sh + env: + BUILD_DIR: ${{runner.workspace}}/build + CC: gcc-${{matrix.cc_ver}} + CXX: g++-${{matrix.cc_ver}} + EXTERNALS_DIR: ${{runner.workspace}}/externals + COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install + COMMON_BUILD_TYPE: ${{matrix.type}} + COMMON_CXX_STANDARD: ${{matrix.cpp}} + COMMS_TAG: ${{env.COMMS_TAG}} + COMMSDSL_TAG: ${{env.COMMSDSL_TAG}} + CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} + CC_TOOLS_QT_MAJOR_QT_VERSION: ${{matrix.qt_ver}} + + - name: Configure CMake + shell: bash + working-directory: ${{runner.workspace}}/build + run: | + cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ + -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} \ + -DMQTTSN_TOOLS_QT_VER=${{matrix.qt_ver}} \ + -DMQTTSN_GEN_PROTOCOL=ON -DMQTTSN_GEN_TEST=ON -DMQTTSN_GEN_TOOLS=ON -DMQTTSN_BUILD_TOOLS=${{env.BUILD_TOOLS}} \ + -DMQTTSN_GEN_SWIG=ON -DMQTTSN_GEN_EMSCRIPTEN=ON + env: + CC: gcc-${{matrix.cc_ver}} + CXX: g++-${{matrix.cc_ver}} + BUILD_TOOLS: "${{ matrix.cpp >= 17 && 'ON' || 'OFF' }}" + + - name: Build Target + working-directory: ${{runner.workspace}}/build + shell: bash + run: cmake --build . --config ${{matrix.type}} + env: + VERBOSE: 1 build_clang_old_ubuntu_20_04: runs-on: ubuntu-20.04 @@ -389,6 +453,73 @@ jobs: env: VERBOSE: 1 + build_clang_ubuntu_24_04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + type: [Debug, Release, MinSizeRel] + cc_ver: [16, 17, 18] + cpp: [11, 14, 17, 20, 23] + qt_ver: [5, 6] + exclude: + - cc_ver: 16 + cpp: 23 + - cc_ver: 17 + cpp: 23 + + steps: + - uses: actions/checkout@v4 + + - name: Prepare Install + run: sudo apt-get update --fix-missing + + - name: Install Packages + run: | + sudo apt install libqt${{matrix.qt_ver}}gui${{matrix.qt_ver}} qtbase5-dev qt6-base-dev libboost-all-dev libxml2-dev clang-${{matrix.cc_ver}} \ + python3 libpython3-dev swig default-jdk default-jre emscripten + + - name: Create Build Environment + run: cmake -E make_directory ${{runner.workspace}}/build + + - name: Prepare externals + shell: bash + run: $GITHUB_WORKSPACE/script/prepare_externals.sh + env: + BUILD_DIR: ${{runner.workspace}}/build + CC: clang-${{matrix.cc_ver}} + CXX: clang++-${{matrix.cc_ver}} + EXTERNALS_DIR: ${{runner.workspace}}/externals + COMMON_INSTALL_DIR: ${{runner.workspace}}/build/install + COMMON_BUILD_TYPE: ${{matrix.type}} + COMMON_CXX_STANDARD: ${{matrix.cpp}} + COMMS_TAG: ${{env.COMMS_TAG}} + COMMSDSL_TAG: ${{env.COMMSDSL_TAG}} + CC_TOOLS_QT_TAG: ${{env.CC_TOOLS_QT_TAG}} + CC_TOOLS_QT_MAJOR_QT_VERSION: ${{matrix.qt_ver}} + CC_TOOLS_QT_SKIP: "${{ (matrix.cpp < 17) && '1' || '0' }}" + + - name: Configure CMake + shell: bash + working-directory: ${{runner.workspace}}/build + run: | + cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{matrix.type}} -DCMAKE_INSTALL_PREFIX=install \ + -DCMAKE_PREFIX_PATH=${{runner.workspace}}/build/install -DCMAKE_CXX_STANDARD=${{matrix.cpp}} \ + -DMQTTSN_TOOLS_QT_VER=${{matrix.qt_ver}} \ + -DMQTTSN_GEN_PROTOCOL=ON -DMQTTSN_GEN_TEST=ON -DMQTTSN_GEN_TOOLS=ON -DMQTTSN_BUILD_TOOLS=${{env.BUILD_TOOLS}} \ + -DMQTTSN_GEN_SWIG=ON -DMQTTSN_GEN_EMSCRIPTEN=ON + env: + CC: clang-${{matrix.cc_ver}} + CXX: clang++-${{matrix.cc_ver}} + BUILD_TOOLS: "${{ (matrix.cpp < 17) && 'OFF' || 'ON' }}" + + - name: Build Target + working-directory: ${{runner.workspace}}/build + shell: bash + run: cmake --build . --config ${{matrix.type}} + env: + VERBOSE: 1 + build_msvc_2019: runs-on: windows-2019 strategy: