Skip to content

Commit

Permalink
Merge remote-tracking branch 'cburstedde/develop' into ci-submodule
Browse files Browse the repository at this point in the history
  • Loading branch information
mkirilin committed Mar 11, 2024
2 parents ba183ec + 564d895 commit 2a8bafd
Show file tree
Hide file tree
Showing 64 changed files with 1,252 additions and 970 deletions.
20 changes: 10 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
zlib1g-dev libmpich-dev mpich
- name: Checkout source code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -63,7 +63,7 @@ jobs:
- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: linux_multi1_log
path: |
Expand All @@ -83,7 +83,7 @@ jobs:
zlib1g-dev libmpich-dev mpich
- name: Checkout source code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true

Expand All @@ -108,7 +108,7 @@ jobs:
- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: linux_multi2_log
path: |
Expand All @@ -128,7 +128,7 @@ jobs:
zlib1g-dev libmpich-dev mpich
- name: Checkout source code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
Expand All @@ -139,7 +139,7 @@ jobs:
cd sc
git fetch --tags
# git checkout v2.8.5
git checkout -b test-branch 64a7508885cc6a55895758023e00227a6786111f
git checkout -b test-branch 4b25600294fccaa21174ca8b2862bc084834012e
- name: Run bootstrap script
run: ./bootstrap
Expand Down Expand Up @@ -169,7 +169,7 @@ jobs:
- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: linux_install_log
path: |
Expand All @@ -189,7 +189,7 @@ jobs:
zlib1g-dev libmpich-dev mpich
- name: Checkout source code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
Expand All @@ -216,14 +216,14 @@ jobs:
mv p4est-*.tar.gz ..
- name: Upload tarball
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: p4est_tarball
path: ./p4est-*.tar.gz

- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: linux_tarball_log
path: |
Expand Down
139 changes: 103 additions & 36 deletions .github/workflows/ci_cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,121 +16,160 @@ on:
types: [published]

env:
CTEST_PARALLEL_LEVEL: 3
CTEST_PARALLEL_LEVEL: 4
CMAKE_BUILD_PARALLEL_LEVEL: 4
CTEST_NO_TESTS_ACTION: "error"

jobs:

linux:
runs-on: ubuntu-22.04
name: CMake build on Linux
timeout-minutes: 15
timeout-minutes: 60

strategy:
matrix:
cc: [gcc-9, gcc-10, gcc-11, gcc-12]
shared: [true, false]
cc: [gcc-9, gcc-10, gcc-11, gcc-12, gcc-13]
shared: [false]
mpi: [mpich]
include:
- cc: gcc
shared: true
mpi: mpich
- cc: gcc
shared: false
mpi: openmpi


env:
CC: ${{ matrix.cc }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
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
sudo apt-get install -yq --no-install-recommends zlib1g-dev lib${{ matrix.mpi }}-dev
- name: CMake configure
run: |
cmake -B build --preset default --install-prefix=${{ runner.temp }} \
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
run: >-
cmake --preset default
--install-prefix=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build
run: cmake --build build --parallel
run: cmake --build --preset default

- name: CMake self-tests
run: ctest --test-dir build --preset default
run: ctest --preset default

- name: install p4est CMake package
run: cmake --install build

# standalone examples tests that CMake packaging is correct
- name: CMake configure examples
run: >-
cmake -B example/build -S example
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build examples
run: cmake --build example/build

- 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
uses: actions/upload-artifact@v4
with:
name: linux_binary_archive
name: linux_binary_archive-${{ matrix.cc }}-${{ matrix.mpi }}-shared-${{ matrix.shared }}
path: build/package

- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: linux_cmake_log
name: linux_cmake_log-${{ matrix.cc }}-${{ matrix.mpi }}-shared-${{ matrix.shared }}
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log
mac:
runs-on: macos-latest
name: CMake build on MacOS
timeout-minutes: 20
timeout-minutes: 60

strategy:
matrix:
cc: [clang, gcc-12]
shared: [true, false]
cc: [clang, gcc-13]
shared: [false]
include:
- cc: clang
shared: true

env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
CC: ${{ matrix.cc }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
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 }}
run: >-
cmake --preset default
--install-prefix=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build
run: cmake --build build --parallel
run: cmake --build --preset default

- name: CMake self-tests
run: ctest --test-dir build --preset default
run: ctest --preset default

- name: install p4est CMake package
run: cmake --install build

- name: CMake configure examples
run: >-
cmake -B example/build -S example
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build examples
run: cmake --build example/build

- 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
uses: actions/upload-artifact@v4
with:
name: mac_binary_archive
name: mac_binary_archive-${{ matrix.cc }}-shared-${{ matrix.shared }}
path: build/package

- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: mac_cmake_log
name: mac_cmake_log-${{ matrix.cc }}-shared-${{ matrix.shared }}
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log
windows:
runs-on: windows-latest
name: CMake build on Windows
timeout-minutes: 20
timeout-minutes: 60

strategy:
matrix:
Expand All @@ -140,32 +179,60 @@ jobs:
CMAKE_GENERATOR: "MinGW Makefiles"

steps:
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
with:
update: true
install: >-
mingw-w64-x86_64-zlib
- name: Put MSYS2_MinGW64 on PATH
run: echo "${{ runner.temp }}/msys64/mingw64/bin/" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append

- uses: actions/checkout@v4
name: Checkout source code

# Windows MPI is shaky in general on GitHub Actions, so we don't use it
- name: CMake configure without MPI
run: cmake -B build -Dmpi:BOOL=no --install-prefix=${{ runner.temp }} -DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
run: >-
cmake --preset default
-Dmpi:BOOL=no
--install-prefix=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
-DZLIB_ROOT:PATH=${{ runner.temp }}/msys64/mingw64/
- name: CMake build
run: cmake --build build --parallel
run: cmake --build --preset default

- name: CMake self-tests
run: ctest --test-dir build --preset default
run: ctest --preset default

- name: install p4est CMake package
run: cmake --install build

- name: CMake configure examples
run: >-
cmake -B example/build -S example
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
-DZLIB_ROOT:PATH=${{ runner.temp }}/msys64/mingw64/
- name: CMake build examples
run: cmake --build example/build

- 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
uses: actions/upload-artifact@v4
with:
name: windows_binary_archive
path: build/package

- name: Upload log files
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: windows_cmake_log
path: |
Expand Down
Loading

0 comments on commit 2a8bafd

Please sign in to comment.