-
Notifications
You must be signed in to change notification settings - Fork 8
139 lines (134 loc) · 3.81 KB
/
tests.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
name: docker
on:
push:
branches:
- 'main'
pull_request:
jobs:
persee:
runs-on: self-hosted
environment: development
steps:
-
name: Env check
run: |
source ~/.bash_profile
rm -rf build
mkdir build
hostname >build/hsotname.out
pwd > build/pwd.out
touch build/test.out
module av gcc
echo "Working?"
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push to tag
uses: docker/build-push-action@v3
with:
context: ./docker/gyselalibxx_env
cache-from: type=registry,ref=ghcr.io/gyselax/gyselalibxx_env:latest
pull: true
push: true
tags: ghcr.io/gyselax/gyselalibxx_env:${{ github.sha }}
-
name: Build and push latest
if: github.event_name == 'push' && github.ref_name == 'main'
uses: docker/build-push-action@v3
with:
context: ./docker/gyselalibxx_env
cache-from: type=registry,ref=ghcr.io/gyselax/gyselalibxx_env:latest
pull: true
push: true
tags: ghcr.io/gyselax/gyselalibxx_env:latest
tests:
runs-on: ubuntu-latest
needs: docker
container:
image: ghcr.io/gyselax/gyselalibxx_env:${{ github.sha }}
options: --user root
steps:
-
name: Checkout gyselalibxx
uses: actions/checkout@v3
with: { submodules: recursive }
-
name: Run tests
run: |
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON -DKokkos_ENABLE_DEPRECATED_CODE_3=OFF -DKokkos_ENABLE_DEPRECATION_WARNINGS=OFF ..
make -j 2 VERBOSE=1
ctest --output-on-failure --timeout 5 -LE test_on_Release_only
tests_Release:
runs-on: ubuntu-latest
needs: docker
container:
image: ghcr.io/gyselax/gyselalibxx_env:${{ github.sha }}
options: --user root
steps:
-
name: Checkout gyselalibxx
uses: actions/checkout@v3
with: { submodules: recursive }
-
name: Run tests
run: |
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-Wall -DBUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release -DKokkos_ENABLE_DEPRECATED_CODE_3=OFF -DKokkos_ENABLE_DEPRECATION_WARNINGS=OFF ..
make -j 2 VERBOSE=1
ctest --output-on-failure --timeout 5
Docs:
if: github.event_name == 'push' && github.ref_name == 'main'
needs: docker
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: code_branch
- name: Checkout documentation
uses: actions/checkout@v3
with:
ref: documentation
path: doc_branch
- name: Install doxygen
run: |
sudo apt install doxygen
shell: bash
- name: Generate docs
run: |
cmake -DGYSELALIBXX_COMPILE_SOURCE=OFF -DBUILD_DOCUMENTATION=1 -B build-docs code_branch
cmake --build build-docs
shell: bash
- name: Update documentation
run: |
cd doc_branch
git rm -r *
cp -r ../build-docs/docs/html/* .
git add .
git config --global user.name "GitHub CI Documentation builder"
git config --global user.email "[email protected]"
git commit -m "Update docs" || true
git push
shell: bash
env:
GH_TOKEN: ${{ github.token }}