Skip to content

Update points example #388

Update points example

Update points example #388

Workflow file for this run

name: CI for CMake
on:
push:
paths:
- sc
- "**/CMakeLists.txt"
- "**.cmake"
- "**.cmake.in"
- "**.c"
- "**.h"
- "**.h.in"
- ".github/workflows/ci_cmake.yml"
pull_request:
release:
types: [published]
env:
CTEST_PARALLEL_LEVEL: 3
CTEST_NO_TESTS_ACTION: "error"
jobs:
linux:
runs-on: ubuntu-22.04
name: CMake build on Linux
timeout-minutes: 15
strategy:
matrix:
cc: [gcc-9, gcc-10, gcc-11, gcc-12]
shared: [true, false]
env:
CC: ${{ matrix.cc }}
steps:
- uses: actions/checkout@v3
name: Checkout source code
- name: Install system dependencies
run: |
sudo apt-get update -yq
sudo apt-get install -yq --no-install-recommends \
zlib1g-dev libmpich-dev mpich
- name: CMake configure
run: |
cmake -B build --preset default --install-prefix=${{ runner.temp }} \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build
run: cmake --build build --parallel
- name: CMake install (for examples)
run: cmake --install build
- name: CMake self-tests
run: ctest --test-dir build --preset default
- name: CMake configure examples
run: |
cmake -B example/build -S example -Dmpi=yes \
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }} \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build examples
run: cmake --build example/build --parallel
- name: Create package
if: github.event.action == 'published'
run: cpack --config build/CPackConfig.cmake
- name: Upload package
if: github.event.action == 'published'
uses: actions/upload-artifact@v3
with:
name: linux_binary_archive
path: build/package
- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
with:
name: linux_cmake_log
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log
mac:
runs-on: macos-latest
name: CMake build on MacOS
timeout-minutes: 20
strategy:
matrix:
cc: [clang, gcc-12]
shared: [true, false]
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
CC: ${{ matrix.cc }}
steps:
- uses: actions/checkout@v3
name: Checkout source code
- name: Install system dependencies
run: brew install open-mpi
- name: CMake configure
run: |
cmake -B build -Dmpi=yes --install-prefix=${{ runner.temp }} \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build
run: cmake --build build --parallel
- name: CMake install (for examples)
run: cmake --install build
- name: CMake self-tests
run: ctest --test-dir build --preset default
- name: CMake configure examples
run: |
cmake -B example/build -S example -Dmpi=yes \
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }} \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build examples
run: cmake --build example/build --parallel
- name: Create package
if: github.event.action == 'published'
run: cpack --config build/CPackConfig.cmake
- name: Upload package
if: github.event.action == 'published'
uses: actions/upload-artifact@v3
with:
name: mac_binary_archive
path: build/package
- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
with:
name: mac_cmake_log
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log
windows:
runs-on: windows-latest
name: CMake build on Windows
timeout-minutes: 20
strategy:
matrix:
shared: [false]
env:
CMAKE_GENERATOR: "MinGW Makefiles"
steps:
- uses: actions/checkout@v3
name: Checkout source code
- name: CMake configure without MPI
run: cmake -B build -Dmpi:BOOL=no --install-prefix=${{ runner.temp }} -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build
run: cmake --build build --parallel
- name: CMake install (for examples)
run: cmake --install build
- name: CMake self-tests
run: ctest --test-dir build --preset default
- name: CMake configure examples without MPI
run: cmake -B example/build -S example -Dmpi:BOOL=no -DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }} -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build examples
run: cmake --build example/build --parallel
- name: Create package
if: github.event.action == 'published'
run: cpack --config build/CPackConfig.cmake
- name: Upload package
if: github.event.action == 'published'
uses: actions/upload-artifact@v1
with:
name: windows_binary_archive
path: build/package
- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
with:
name: windows_cmake_log
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log