From 1a29d0b04e818d70a65ebf96092b64b015b83707 Mon Sep 17 00:00:00 2001 From: Travis Hunter Date: Fri, 15 Mar 2024 12:58:37 -0600 Subject: [PATCH] Tweaking workflow. Trying to use gcc-13 on ubuntu --- ...ws-latest.yml => cmake-multi-platform.yml} | 54 ++++++++++------ .github/workflows/ubuntu-latest-gcc13.yml | 64 ------------------- .gitignore | 1 + 3 files changed, 34 insertions(+), 85 deletions(-) rename .github/workflows/{windows-latest.yml => cmake-multi-platform.yml} (59%) delete mode 100644 .github/workflows/ubuntu-latest-gcc13.yml diff --git a/.github/workflows/windows-latest.yml b/.github/workflows/cmake-multi-platform.yml similarity index 59% rename from .github/workflows/windows-latest.yml rename to .github/workflows/cmake-multi-platform.yml index 656ad21..65651d1 100644 --- a/.github/workflows/windows-latest.yml +++ b/.github/workflows/cmake-multi-platform.yml @@ -1,4 +1,5 @@ -# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform. +# This starter workflow is for a CMake project running on multiple platforms. There is a different +# starter workflow if you just want a single platform. # See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml name: CMake on multiple platforms @@ -8,14 +9,9 @@ on: pull_request: branches: [ "development" ] -env: - build_type: Release - c_compiler: cl - cpp_compiler: cl - jobs: build: - runs-on: windows-latest + runs-on: ${{ matrix.os }} strategy: # Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. @@ -28,7 +24,27 @@ jobs: # 3. # # To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list. - #os: [ubuntu-latest, windows-latest] + matrix: + os: [ubuntu-latest, windows-latest] + build_type: [Release] + c_compiler: [gcc-13, clang, cl] + include: + - os: windows-latest + c_compiler: cl + cpp_compiler: cl + - os: ubuntu-latest + c_compiler: gcc-13 + cpp_compiler: g++-13 + - os: ubuntu-latest + c_compiler: clang + cpp_compiler: clang++ + exclude: + - os: windows-latest + c_compiler: gcc-13 + - os: windows-latest + c_compiler: clang + - os: ubuntu-latest + c_compiler: cl steps: - uses: actions/checkout@v3 @@ -40,32 +56,28 @@ jobs: target: desktop - name: Set reusable strings - # Turn repeated input strings (such as the build output directory) into step outputs. - # These step outputs can be used throughout the workflow file. + # Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file. id: strings shell: bash run: | echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT" - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you - # are using a single-configuration generator such as make. + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type run: > cmake -B ${{ steps.strings.outputs.build-output-dir }} - -DCMAKE_CXX_COMPILER=${{ env.cpp_compiler }} - -DCMAKE_C_COMPILER=${{ env.c_compiler }} - -DCMAKE_BUILD_TYPE=${{ env.build_type }} + -DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }} + -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -S ${{ github.workspace }} - name: Build - # Build your program with the given configuration. Note that --config is needed because the - # default Windows generator is a multi-config generator (Visual Studio generator). - run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ env.build_type }} + # Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). + run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} - name: Test working-directory: ${{ steps.strings.outputs.build-output-dir }} - # Execute tests defined by the CMake configuration. Note that --build-config is needed because - # the default Windows generator is a multi-config generator (Visual Studio generator). + # Execute tests defined by the CMake configuration. Note that --build-config is needed because the default Windows generator is a multi-config generator (Visual Studio generator). # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest --build-config ${{ env.build_type }} + run: ctest --build-config ${{ matrix.build_type }} diff --git a/.github/workflows/ubuntu-latest-gcc13.yml b/.github/workflows/ubuntu-latest-gcc13.yml deleted file mode 100644 index 2c98da0..0000000 --- a/.github/workflows/ubuntu-latest-gcc13.yml +++ /dev/null @@ -1,64 +0,0 @@ -# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform. -# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml -name: CMake on multiple platforms - -on: - push: - branches: [ "development" ] - pull_request: - branches: [ "development" ] - -env: - # Customize the CMake built type here (Release, Debug, RelWithDebInfo, etc) - BUILD_TYPE: Release - cpp_compiler: g++-13 - c_compiler: gcc-13 - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - # Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. - # Consider changing this to true when your workflow is stable. - fail-fast: false - - steps: - - uses: actions/checkout@v3 - - - name: Install Qt - uses: jurplel/install-qt-action@v3 - with: - version: 6.6.2 - target: desktop - - - name: Set reusable strings - # Turn repeated input strings (such as the build output directory) into step outputs. - # These step outputs can be used throughout the workflow file. - id: strings - shell: bash - run: | - echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT" - - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you - # are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: > - cmake -B ${{ steps.strings.outputs.build-output-dir }} - -DCMAKE_CXX_COMPILER=${{ env.cpp_compiler }} - -DCMAKE_C_COMPILER=${{ env.c_compiler }} - -DCMAKE_BUILD_TYPE=${{ env.build_type }} - -S ${{ github.workspace }} - - - name: Build - # Build your program with the given configuration. Note that --config is needed because the - # default Windows generator is a multi-config generator (Visual Studio generator). - run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ env.build_type }} - - - name: Test - working-directory: ${{ steps.strings.outputs.build-output-dir }} - # Execute tests defined by the CMake configuration. Note that --build-config is needed - # because the default Windows generator is a multi-config generator (Visual Studio generator). - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest --build-config ${{ env.build_type }} diff --git a/.gitignore b/.gitignore index 5b8a0ff..3575ea4 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ build/ docs/doxygen/* # IDE +*.swp qtrocket.pro.user .qmake.stash CMakeLists.txt.user