-
Notifications
You must be signed in to change notification settings - Fork 82
148 lines (127 loc) · 4.26 KB
/
ci_misc.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
142
143
144
145
146
147
148
# SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
# SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
# SPDX-License-Identifier: CC0-1.0
name: Linux
on:
push:
branches:
- 'main'
pull_request:
types:
- unlabeled
workflow_dispatch:
concurrency:
group: misc-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name != 'push' }}
env:
SEQAN3_NO_VERSION_CHECK: 1
TZ: Europe/Berlin
defaults:
run:
shell: bash -Eexuo pipefail {0}
jobs:
build:
name: ${{ matrix.name }}
runs-on: ubuntu-22.04
timeout-minutes: 120
if: github.repository_owner == 'seqan' || github.event_name == 'workflow_dispatch' || github.event.label.name == 'lint'
strategy:
fail-fast: false
matrix:
include:
- name: "Snippet clang17 libc++"
compiler: "clang-17"
build: snippet
build_type: Release
test_threads: 1 # snippets create and delete files and some separate tests create/delete the same files
cxx_flags: "-stdlib=libc++"
- name: "Snippet gcc11"
compiler: "gcc-11"
build: snippet
build_type: Release
test_threads: 1 # snippets create and delete files and some separate tests create/delete the same files
- name: "Snippet IntelLLVM"
compiler: "intel"
build: snippet
build_type: Release
test_threads: 1 # snippets create and delete files and some separate tests create/delete the same files
cxx_flags: "-fp-model=strict"
- name: "Performance clang17 libc++"
compiler: "clang-17"
build: performance
build_type: Release
test_threads: 2
cxx_flags: "-stdlib=libc++"
- name: "Performance gcc11"
compiler: "gcc-11"
build: performance
build_type: Release
test_threads: 2
- name: "Performance IntelLLVM"
compiler: "intel"
build: performance
build_type: Release
test_threads: 2
cxx_flags: "-fp-model=strict"
- name: "Header clang17 libc++"
compiler: "clang-17"
build: header
build_type: Release
test_threads: 2
cxx_flags: "-stdlib=libc++"
- name: "Header gcc13"
compiler: "gcc-13"
build: header
build_type: Release
test_threads: 2
- name: "Header gcc11"
compiler: "gcc-11"
build: header
build_type: Release
test_threads: 2
steps:
- name: Checkout SeqAn3
uses: actions/checkout@v4
with:
path: seqan3
fetch-depth: 1
submodules: true
- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: seqan3/submodules/seqan
fetch-depth: 1
- name: Install CMake
if: contains(matrix.compiler, 'intel') == false
uses: seqan/actions/setup-cmake@main
with:
cmake: 3.16.9
- name: Setup toolchain
uses: seqan/actions/setup-toolchain@main
with:
compiler: ${{ matrix.compiler }}
ccache_size: 75M
- name: Configure tests
run: |
mkdir seqan3-build
cd seqan3-build
cmake ../seqan3/test/${{ matrix.build }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" \
-DSEQAN3_VERBOSE_TESTS=OFF \
-DSEQAN3_BENCHMARK_MIN_TIME=0.01
case "${{ matrix.build }}" in
snippet) make -j2 gtest_build;;
performance) make -j2 gbenchmark_build;;
header) make -j2 gtest_build gbenchmark_build;;
esac
- name: Build tests
run: |
ccache -z
cd seqan3-build
make -k -j2
ccache -sv
- name: Run tests
run: |
cd seqan3-build
ctest . -j${{ matrix.test_threads }} --output-on-failure