-
Notifications
You must be signed in to change notification settings - Fork 7
117 lines (105 loc) · 3.38 KB
/
ci-kokkos.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
name: github-Linux-kokkos
on:
pull_request:
types: [ opened, reopened, synchronize ]
branches: [main, develop]
paths-ignore:
- 'logos/**'
- 'helper_scripts/**'
- 'docker_scripts/**'
- 'docs/**'
- '**/*.md'
push: # for direct quick fixes
branches:
- 'main'
- 'develop'
paths-ignore:
- 'logos/**'
- 'helper_scripts/**'
- 'docker_scripts/**'
- 'docs/**'
- '**/*.md'
concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{github.event_name == 'pull_request'}}
jobs:
CI-kokkos:
name: Kokkos
continue-on-error: false
strategy:
fail-fast: false
matrix:
image:
- ubuntu-gnu-kokkos-cpu-serial-11
- ubuntu-gnu-kokkos-cpu-openmp-11
build_type:
- Release
- Debug
runs-on: ubuntu-latest
container:
image: ghcr.io/pressio/${{ matrix.image }}
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
env:
num_cpus: 4
PRESSIO_INSTALL_DIR: ${{ github.workspace }}/pressio_install
steps:
- uses: actions/checkout@v4
- name: Checkout pressio examples
uses: actions/checkout@v4
with:
repository: Pressio/pressio-templates-usage-as-library
path: examples
ref: add-compatibility-with-pressio-ops
- name: Checkout pressio-ops
uses: actions/checkout@v4
with:
repository: Pressio/pressio-ops
path: pressio-ops
ref: develop
- name: Configure
run: |
cmake -B builddir \
-D CMAKE_BUILD_TYPE:STRING=${{ matrix.build_type }} \
-D CMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-D CMAKE_C_COMPILER:FILEPATH=$CC \
-D CMAKE_CXX_COMPILER:FILEPATH=$CXX \
-D PRESSIO_ENABLE_TESTS:BOOL=ON \
-D PRESSIO_ENABLE_TPL_EIGEN:BOOL=OFF \
-D PRESSIO_ENABLE_TPL_MPI:BOOL=OFF \
-D PRESSIO_ENABLE_TPL_KOKKOS:BOOL=ON \
-D Kokkos_ROOT=/kokkos/install \
-D KokkosKernels_ROOT=/kokkos-kernels/install \
-D PRESSIO_ENABLE_DEBUG_PRINT=ON \
-D CMAKE_INSTALL_PREFIX:PATH=${PRESSIO_INSTALL_DIR} \
-D CMAKE_CXX_FLAGS='-Wall -Werror'
- name: Build
run: cmake --build builddir -j $num_cpus --target install
- name: Example - include only
working-directory: examples
run: |
$CXX \
--std=c++17 \
-DPRESSIO_ENABLE_TPL_KOKKOS \
-I/kokkos/install/include \
-I/kokkos-kernels/install/include \
-I${GITHUB_WORKSPACE}/pressio-ops/include \
-I${PRESSIO_INSTALL_DIR}/include \
-c main.cpp
- name: Example - include only with embedded definitions
working-directory: examples
run: |
$CXX \
--std=c++17 \
-DPRESSIO_ENABLE_TPL_KOKKOS \
-I/kokkos/install/include \
-I/kokkos-kernels/install/include \
-I${GITHUB_WORKSPACE}/pressio-ops/include \
-I${PRESSIO_INSTALL_DIR}/include \
-c main_with_defines.cpp
- name: Test
working-directory: builddir
run: |
export LD_LIBRARY_PATH=/kokkos/install/lib:/kokkos-kernels/install/include
ctest -j $num_cpus --output-on-failure