@@ -15,102 +15,62 @@ concurrency:
15
15
16
16
jobs :
17
17
build :
18
- name : ${{ format('Ubuntu {0}, {1} ', matrix.UBUNTU_VERSION, matrix.ARCH ) }}
18
+ name : ${{ format('Ubuntu {0}', matrix.UBUNTU_VERSION) }}
19
19
runs-on : ubuntu-latest
20
+ container : unistuttgartdae/fans-ci:${{ matrix.UBUNTU_VERSION }}
21
+ defaults :
22
+ run :
23
+ shell : " bash --login -eo pipefail {0}"
20
24
env :
21
- FANS_DIR : /FANS
22
- FANS_IMG : unistuttgartdae/fans-ci
23
- FANS_CONTAINER : fans-ci
24
25
FANS_BUILD_DIR : build
25
- FANS_MPI_UID : 1000
26
+ FANS_MPI_USER : fans
26
27
strategy :
27
28
fail-fast : false
28
29
matrix :
29
- ARCH : [amd64, arm64]
30
30
UBUNTU_VERSION : [noble, jammy, focal]
31
31
steps :
32
32
- name : Checkout code
33
33
uses : actions/checkout@v4
34
34
35
- - name : Set up QEMU
36
- uses : docker/setup-qemu-action@v3
37
-
38
- - name : Create and start container
39
- run : |
40
- docker create \
41
- --name ${{ env.FANS_CONTAINER }} \
42
- --platform linux/${{ matrix.ARCH }} \
43
- --interactive \
44
- --volume .:${{ env.FANS_DIR }} \
45
- ${{ env.FANS_IMG }}:${{ matrix.UBUNTU_VERSION }}
46
- docker start ${{ env.FANS_CONTAINER }}
47
-
48
35
- name : Generate build directory
49
- run : |
50
- docker exec \
51
- -w ${{ env.FANS_DIR }} \
52
- ${{ env.FANS_CONTAINER }} \
53
- bash -c ' \
54
- mkdir -p ${{ env.FANS_BUILD_DIR }} \
55
- '
36
+ run : mkdir -p ${{ env.FANS_BUILD_DIR }}
56
37
57
38
- name : Configure
39
+ working-directory : ${{ env.FANS_BUILD_DIR }}
58
40
run : |
59
- docker exec \
60
- -w ${{ env.FANS_DIR }}/${{ env.FANS_BUILD_DIR }} \
61
- ${{ env.FANS_CONTAINER }} \
62
- bash -c ' \
63
- cmake --version && \
64
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. \
65
- '
41
+ cmake --version
42
+ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
66
43
67
44
- uses : actions/upload-artifact@v4
68
45
if : failure()
69
46
with :
70
- name : ${{ format('Ubuntu {0}, {1} ', matrix.UBUNTU_VERSION, matrix.ARCH ) }} CMakeCache
47
+ name : ${{ format('Ubuntu {0}', matrix.UBUNTU_VERSION) }} CMakeCache
71
48
path : ${{ env.FANS_BUILD_DIR }}/CMakeCache.txt
72
49
- uses : actions/upload-artifact@v4
73
50
if : failure()
74
51
with :
75
- name : ${{ format('Ubuntu {0}, {1} ', matrix.UBUNTU_VERSION, matrix.ARCH ) }} CMakeLogs
52
+ name : ${{ format('Ubuntu {0}', matrix.UBUNTU_VERSION) }} CMakeLogs
76
53
path : ' ${{ env.FANS_BUILD_DIR }}/CMakeFiles/*.log'
77
54
- uses : actions/upload-artifact@v4
78
55
if : failure()
79
56
with :
80
- name : ${{ format('Ubuntu {0}, {1} ', matrix.UBUNTU_VERSION, matrix.ARCH ) }} CompileCommands
57
+ name : ${{ format('Ubuntu {0}', matrix.UBUNTU_VERSION) }} CompileCommands
81
58
path : ${{ env.FANS_BUILD_DIR }}/compile_commands.json
82
59
83
60
- name : Compile
84
- run : |
85
- docker exec \
86
- -w ${{ env.FANS_DIR }}/${{ env.FANS_BUILD_DIR }} \
87
- ${{ env.FANS_CONTAINER }} \
88
- bash -c ' \
89
- cmake --build . -j $(nproc) || cmake --build . -j1 \
90
- '
61
+ working-directory : ${{ env.FANS_BUILD_DIR }}
62
+ run :
63
+ cmake --build . -j $(nproc) || cmake --build . -j1
91
64
92
65
- name : Adjust user rights
93
- run : |
94
- docker exec \
95
- -w ${{ env.FANS_DIR }} \
96
- ${{ env.FANS_CONTAINER }} \
97
- bash -c ' \
98
- chown -R ${{ env.FANS_MPI_UID }} ${{ env.FANS_BUILD_DIR }}
99
- '
66
+ run : chown -R ${{ env.FANS_MPI_USER }} ${{ env.FANS_BUILD_DIR }}
100
67
101
68
- name : Tests
102
- run : |
103
- docker exec \
104
- -w ${{ env.FANS_DIR }}/${{ env.FANS_BUILD_DIR }} \
105
- -u ${{ env.FANS_MPI_UID }} \
106
- -e CTEST_OUTPUT_ON_FAILURE=1 \
107
- ${{ env.FANS_CONTAINER }} \
108
- bash -c ' \
109
- ctest
110
- '
69
+ working-directory : ${{ env.FANS_BUILD_DIR }}
70
+ run : su -c "ctest" ${{ env.FANS_MPI_USER }}
111
71
112
72
- uses : actions/upload-artifact@v4
113
73
if : failure()
114
74
with :
115
- name : ${{ format('Ubuntu {0}, {1} ', matrix.UBUNTU_VERSION, matrix.ARCH ) }} CTest logs
75
+ name : ${{ format('Ubuntu {0}', matrix.UBUNTU_VERSION) }} CTest logs
116
76
path : ${{ env.FANS_BUILD_DIR }}/Testing/Temporary/LastTest.log
0 commit comments