presets nostdfs distinct build dir to save time #2036
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| paths: | |
| - "**.c" | |
| - "**.h" | |
| - "**.cpp" | |
| - "**.f90" | |
| - "**.F90" | |
| - "**/CMakeLists.txt" | |
| - "**.cmake" | |
| - ".github/workflows/ci.yml" | |
| workflow_dispatch: | |
| # avoid wasted runs | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| ubuntu26-gcc: | |
| runs-on: ubuntu-26.04 | |
| timeout-minutes: 15 | |
| strategy: | |
| matrix: | |
| gcc-version: [15] | |
| env: &gcc-env | |
| CC: gcc-${{ matrix.gcc-version }} | |
| CXX: g++-${{ matrix.gcc-version }} | |
| FC: gfortran-${{ matrix.gcc-version }} | |
| steps: | |
| - &checkout | |
| uses: actions/checkout@v7 | |
| - uses: ./.github/workflows/composite-build | |
| - &cpp23 | |
| name: C++23 workflow | |
| run: cmake --workflow cpp23 | |
| - name: ISO_Fortran_binding.h workflow | |
| if: matrix.gcc-version >= 12 | |
| run: cmake --workflow isofortran | |
| - name: Debug workflow | |
| run: cmake --workflow debug --fresh | |
| ubuntu24-gcc: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| strategy: | |
| matrix: | |
| gcc-version: [9, 10, 11, 12, 13, 14] | |
| env: *gcc-env | |
| steps: | |
| - name: GCC APT | |
| if: matrix.gcc-version < 12 | |
| run: | | |
| sudo apt update -y | |
| sudo apt install -y --no-install-recommends gcc-${{ matrix.gcc-version }} g++-${{ matrix.gcc-version }} gfortran-${{ matrix.gcc-version }} | |
| - *checkout | |
| - uses: ./.github/workflows/composite-build | |
| - name: ISO_Fortran_binding.h workflow | |
| if: matrix.gcc-version >= 12 | |
| run: cmake --workflow isofortran | |
| - name: C++17 workflow | |
| if: matrix.gcc-version == 9 | |
| run: cmake --workflow cpp17 --fresh | |
| shared: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - *checkout | |
| - name: build and test | |
| run: cmake --workflow shared | |
| - name: install package | |
| run: cmake --install build-shared | |
| - name: example | |
| working-directory: example | |
| run: cmake --workflow shared | |
| ubuntu26-flang: | |
| runs-on: ubuntu-26.04 | |
| timeout-minutes: 15 | |
| strategy: | |
| matrix: | |
| llvm-version: [22] | |
| env: | |
| CC: clang-${{ matrix.llvm-version }} | |
| CXX: clang++-${{ matrix.llvm-version }} | |
| FC: flang-${{ matrix.llvm-version }} | |
| steps: | |
| # - name: Apt LLVM | |
| # run: | | |
| # wget https://apt.llvm.org/llvm.sh | |
| # chmod +x llvm.sh | |
| # sudo ./llvm.sh ${{ matrix.llvm-version }} | |
| # sudo apt-get update | |
| - name: install Flang | |
| run: sudo apt install --no-install-recommends flang-${{ matrix.llvm-version }} | |
| - *checkout | |
| - uses: ./.github/workflows/composite-build | |
| - *cpp23 | |
| - name: Debug workflow | |
| run: cmake --workflow debug --fresh | |
| # works, save CI time | |
| # gcc-7-8: | |
| # runs-on: ubuntu-latest | |
| # container: | |
| # image: ubuntu:20.04 | |
| # env: | |
| # DEBIAN_FRONTEND: noninteractive | |
| # timeout-minutes: 15 | |
| # strategy: | |
| # matrix: | |
| # gcc-version: [8] | |
| # env: *gcc-env | |
| # steps: | |
| # - name: install compilers | |
| # run: | | |
| # apt update -y | |
| # apt install -y --no-install-recommends ca-certificates gpg curl ninja-build ${{ env.CC }} ${{ env.CXX }} ${{ env.FC }} | |
| # - name: install CMake | |
| # run: | | |
| # curl -s https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null | |
| # echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null | |
| # apt-get update | |
| # test -f /usr/share/doc/kitware-archive-keyring/copyright || rm /usr/share/keyrings/kitware-archive-keyring.gpg | |
| # apt-get install --no-install-recommends -y kitware-archive-keyring | |
| # apt-get install --no-install-recommends -y cmake | |
| # - *checkout | |
| # - uses: ./.github/workflows/composite-build | |
| cmake-older: | |
| timeout-minutes: 30 | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| cmake_version: ["3.25.3"] | |
| steps: | |
| - *checkout | |
| - uses: ./.github/workflows/composite-cmake | |
| - name: workflow without std::filesystem | |
| run: $CMAKE --workflow --preset nostdfs | |
| - name: configure | |
| run: $CMAKE --workflow --preset default | |
| - name: install package | |
| run: $CMAKE --install build |