-
Notifications
You must be signed in to change notification settings - Fork 119
141 lines (107 loc) · 3.25 KB
/
ci_cmake.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
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: 0
CMAKE_BUILD_PARALLEL_LEVEL: 4
CTEST_NO_TESTS_ACTION: "error"
CMAKE_INSTALL_PREFIX: ~/local
CMAKE_PREFIX_PATH: ~/local
jobs:
linux:
runs-on: ubuntu-latest
name: Linux mpi=${{ matrix.mpi }} CC=${{ matrix.cc }} shared=${{ matrix.shared }}
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
cc: [gcc]
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@v4
name: Checkout source code
- name: Install deps
uses: ./.github/workflows/composite-deps
- name: CMake build-test-install-package
uses: ./.github/workflows/composite-unix
- name: Upload package
uses: ./.github/workflows/composite-pkg
mac:
runs-on: macos-latest
name: macOS CC=${{ matrix.cc }} shared=${{ matrix.shared }}
timeout-minutes: 60
strategy:
matrix:
cc: [clang]
shared: [false, true]
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
CC: ${{ matrix.cc }}
steps:
- uses: actions/checkout@v4
name: Checkout source code
- name: Install deps
uses: ./.github/workflows/composite-deps
- name: CMake build-test-install-package
uses: ./.github/workflows/composite-unix
- name: Upload package
uses: ./.github/workflows/composite-pkg
windows:
runs-on: windows-latest
name: Windows
timeout-minutes: 60
env:
CMAKE_GENERATOR: "MinGW Makefiles"
steps:
- 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
- run: echo "CMAKE_INSTALL_PREFIX=$HOME/local" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- run: echo "CMAKE_PREFIX_PATH=$HOME/local" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- run: echo "ZLIB_ROOT=$env:RUNNER_TEMP/msys64/mingw64" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
# Windows MPI is shaky in general on GitHub Actions, so we don't use it
- name: CMake configure without MPI
run: cmake --preset default -Dmpi:BOOL=no
- name: CMake build
run: cmake --build --preset default
- name: CMake self-tests
run: ctest --preset default
- name: install p4est CMake package
run: cmake --install build
- name: CMake configure examples
run: cmake -B example/build -S example
- 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
uses: ./.github/workflows/composite-pkg