-
Notifications
You must be signed in to change notification settings - Fork 0
81 lines (71 loc) · 2.47 KB
/
ci-trilinos.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
name: github-Linux-trilinos
on:
pull_request:
types: [ opened, reopened, synchronize ]
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-trilinos:
name: Trilinos
strategy:
matrix:
image:
- ubuntu-gnu-trilinos-11
tag:
- ef73d14
- 702aac5
- trilinos-release-14-4-0
build_type:
- Release
- Debug
epetra_toggle:
- ON
- OFF
runs-on: ubuntu-latest
container: ghcr.io/pressio/${{ matrix.image }}:${{ matrix.tag }}
env:
eigen_version: 3.4.0
num_cpus: 4
trilinos_dir: /home/pressio_builds/trilinos/install
steps:
- uses: actions/checkout@v4
- name: Preparing environment
run: |
sed -i -e '$alocalhost slots=4' /etc/openmpi/openmpi-default-hostfile \
&& wget https://gitlab.com/libeigen/eigen/-/archive/${{ env.eigen_version }}/eigen-${{ env.eigen_version }}.tar.gz \
&& mkdir -p /eigen \
&& tar -xf eigen-${{ env.eigen_version }}.tar.gz -C /eigen
- 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=/usr/bin/mpicc \
-D CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/mpic++ \
-D MPI_Fortran_COMPILER:FILEPATH=/usr/bin/mpif90 \
-D PRESSIO_OPS_ENABLE_TESTS:BOOL=ON \
-D PRESSIO_ENABLE_TPL_EIGEN:BOOL=ON \
-D PRESSIO_ENABLE_TPL_MPI:BOOL=ON \
-D PRESSIO_ENABLE_TPL_TRILINOS:BOOL=ON \
-D PRESSIO_ENABLE_EPETRA:BOOL=${{ matrix.epetra_toggle }} \
-D PRESSIO_ENABLE_TPL_KOKKOS:BOOL=ON \
-D EIGEN_INCLUDE_DIR=/eigen/eigen-${{ env.eigen_version }} \
-D Trilinos_DIR=${{ env.trilinos_dir }}/lib/cmake/Trilinos \
-D CMAKE_INSTALL_PREFIX:PATH=../install \
-D CMAKE_CXX_FLAGS='-Wall -Werror'
- name: Build
run: cmake --build builddir -j $num_cpus --target install
- name: Test
working-directory: builddir
run: |
export LD_LIBRARY_PATH=${{ env.trilinos_dir }}/lib
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
ctest -j $num_cpus --output-on-failure