Skip to content

Commit be8cffe

Browse files
authored
Merge pull request #8 from eseiler/infra/cron
Add cron jobs
2 parents 619fb7b + c94ede8 commit be8cffe

29 files changed

+538
-87
lines changed

.github/config/codechecker.skip

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
-${GITHUB_WORKSPACE}/include/fpgalign/contrib/*
6+
+${GITHUB_WORKSPACE}/*
7+
-*

.github/config/codechecker.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
analyze:
6+
- --enable=performance
7+
- --enable=bugprone
8+
- --enable=prefix:clang-diagnostic-shadow
9+
- --disable=bugprone-easily-swappable-parameters
10+
- --disable=clang-diagnostic-implicit-int-float-conversion
11+
- --disable=clang-diagnostic-float-conversion
12+
- --disable=clang-diagnostic-implicit-int-conversion
13+
- --disable=bugprone-exception-escape
14+
- --disable=bugprone-narrowing-conversions
15+
- --disable=deadcode.DeadStores
16+
- --skip=${GITHUB_WORKSPACE}/.github/config/codechecker.skip
17+
- --clean
18+
19+
parse:
20+
- --export=html
21+
- --output=./html
22+
- --skip=${GITHUB_WORKSPACE}/.github/config/codechecker.skip
23+
- --trim-path-prefix=${GITHUB_WORKSPACE}/

.github/config/custom.imp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
[
6+
{ "include": [ "<seqan3/contrib/std/detail/adaptor_base.hpp>", "public", "<hibf/contrib/std/detail/adaptor_base.hpp>", "public"] }
7+
]
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
name: CodeChecker
6+
7+
on:
8+
schedule:
9+
- cron: "0 4 * * MON"
10+
workflow_dispatch:
11+
12+
concurrency:
13+
group: codechecker-actions
14+
cancel-in-progress: true
15+
16+
env:
17+
TZ: Europe/Berlin
18+
19+
defaults:
20+
run:
21+
shell: bash -Eexuo pipefail {0}
22+
23+
jobs:
24+
build:
25+
name: CodeChecker
26+
runs-on: ubuntu-latest
27+
if: github.repository_owner == 'seqan' || github.event_name == 'workflow_dispatch'
28+
container:
29+
image: ghcr.io/seqan/codechecker
30+
steps:
31+
- name: Run CodeChecker
32+
uses: seqan/actions/codechecker@main
33+
with:
34+
deploy_host: ${{ secrets.DEPLOY_HOST }}
35+
deploy_user: ${{ secrets.DEPLOY_USER }}
36+
deploy_ssh_key: ${{ secrets.DEPLOY_SSH_KEY }}
37+
deploy_path: ${{ secrets.DEPLOY_CODECHECKER_PATH }}

.github/workflows/cron_codeql.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
name: CodeQL
6+
7+
on:
8+
schedule:
9+
- cron: "0 6 * * SAT"
10+
workflow_dispatch:
11+
12+
concurrency:
13+
group: codeql-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
env:
17+
CODEQL_EXTRACTOR_CPP_AUTOINSTALL_DEPENDENCIES: false
18+
SHARG_NO_VERSION_CHECK: 1
19+
TZ: Europe/Berlin
20+
21+
defaults:
22+
run:
23+
shell: bash -Eeuxo pipefail {0}
24+
25+
jobs:
26+
codeql:
27+
name: CodeQL
28+
runs-on: ubuntu-latest
29+
permissions:
30+
security-events: write
31+
container:
32+
image: ghcr.io/seqan/gcc-second-latest
33+
steps:
34+
- name: Checkout
35+
uses: actions/checkout@v4
36+
37+
- name: Initialize CodeQL
38+
uses: github/codeql-action/init@v3
39+
with:
40+
languages: cpp
41+
42+
- name: Autobuild
43+
uses: github/codeql-action/autobuild@v3
44+
45+
- name: Perform CodeQL Analysis
46+
uses: github/codeql-action/analyze@v3
47+
with:
48+
category: "/language:cpp"

.github/workflows/cron_cpm.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# SPDX-FileCopyrightText: 2006-2025 Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025 Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
name: Update CPM
6+
7+
on:
8+
schedule:
9+
- cron: "0 12 * * SAT"
10+
workflow_dispatch:
11+
12+
env:
13+
TZ: Europe/Berlin
14+
15+
concurrency:
16+
group: update-cpm-actions
17+
cancel-in-progress: true
18+
19+
jobs:
20+
update_cpm:
21+
name: Update CPM
22+
runs-on: ubuntu-latest
23+
timeout-minutes: 15
24+
if: github.repository_owner == 'seqan' || github.event_name == 'workflow_dispatch'
25+
steps:
26+
- name: Run update CPM
27+
uses: seqan/actions/update_cpm_package_lock@main
28+
with:
29+
token: ${{ secrets.SEQAN_ACTIONS_PAT }}
30+
gpg_key: ${{ secrets.SEQAN_ACTIONS_GPG_KEY }}
31+
gpg_passphrase: ${{ secrets.SEQAN_ACTIONS_GPG_PASSPHRASE }}
32+
package_lock_file: cmake/package-lock.cmake

.github/workflows/cron_iwyu.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
name: IWYU
6+
7+
on:
8+
schedule:
9+
- cron: "0 4 * * MON"
10+
workflow_dispatch:
11+
12+
concurrency:
13+
group: iwyu-actions
14+
cancel-in-progress: true
15+
16+
env:
17+
TZ: Europe/Berlin
18+
19+
defaults:
20+
run:
21+
shell: bash -Eexuo pipefail {0}
22+
23+
jobs:
24+
build:
25+
name: IWYU
26+
runs-on: ubuntu-latest
27+
if: github.repository_owner == 'seqan' || github.event_name == 'workflow_dispatch'
28+
container:
29+
image: ghcr.io/seqan/iwyu
30+
steps:
31+
- name: Run IWYU
32+
uses: seqan/actions/iwyu@main
33+
with:
34+
configure_path: .
35+
token: ${{ secrets.SEQAN_ACTIONS_PAT }}
36+
gpg_key: ${{ secrets.SEQAN_ACTIONS_GPG_KEY }}
37+
gpg_passphrase: ${{ secrets.SEQAN_ACTIONS_GPG_PASSPHRASE }}
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# SPDX-FileCopyrightText: 2006-2025, Knut Reinert & Freie Universität Berlin
2+
# SPDX-FileCopyrightText: 2016-2025, Knut Reinert & MPI für molekulare Genetik
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
name: Sanitizer
6+
7+
on:
8+
schedule:
9+
- cron: "0 4 * * SAT"
10+
workflow_dispatch:
11+
12+
concurrency:
13+
group: sanitizer-actions
14+
cancel-in-progress: true
15+
16+
env:
17+
TZ: Europe/Berlin
18+
TSAN_OPTIONS: ignore_noninstrumented_modules=1
19+
UBSAN_OPTIONS: print_stacktrace=1
20+
21+
defaults:
22+
run:
23+
shell: bash -Eeuxo pipefail {0}
24+
25+
jobs:
26+
build:
27+
name: ${{ matrix.name }} ${{ matrix.build_type }} ${{ matrix.os }}
28+
runs-on: ${{ matrix.os }}
29+
if: github.repository_owner == 'seqan' || github.event_name == 'workflow_dispatch'
30+
env:
31+
ASAN_OPTIONS: strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1:detect_leaks=${{ contains(matrix.os, 'macos') && '0' || '1' }}
32+
strategy:
33+
fail-fast: false
34+
matrix:
35+
name: [ASan, TSan, UBSan]
36+
os: [ubuntu-latest, macos-latest]
37+
build_type: [Release, RelWithDebInfo, Debug]
38+
exclude:
39+
- name: "TSan"
40+
os: macos-latest
41+
42+
include:
43+
- name: "ASan"
44+
cxx_flags: "-fno-omit-frame-pointer -fsanitize=address"
45+
46+
- name: "TSan"
47+
cxx_flags: "-fno-omit-frame-pointer -fsanitize=thread"
48+
49+
- name: "UBSan"
50+
os: macos-latest
51+
cxx_flags: "-fno-omit-frame-pointer -fsanitize=undefined,float-divide-by-zero,implicit-conversion,local-bounds,nullability -Wno-pass-failed"
52+
53+
- name: "UBSan"
54+
os: macos-latest
55+
build_type: Release
56+
ctest_excludes: "-E tmp_directory_snippet_cmp_output"
57+
58+
- name: "UBSan"
59+
os: macos-latest
60+
build_type: RelWithDebInfo
61+
ctest_excludes: "-E tmp_directory_snippet_cmp_output"
62+
63+
- name: "UBSan"
64+
os: ubuntu-latest
65+
cxx_flags: "-fno-omit-frame-pointer -fsanitize=undefined,float-divide-by-zero"
66+
67+
- os: macos-latest
68+
compiler: clang-latest
69+
70+
- os: ubuntu-latest
71+
compiler: gcc-latest
72+
image: ghcr.io/seqan/gcc-latest
73+
74+
- name: "TSan"
75+
os: ubuntu-latest
76+
compiler: clang-latest
77+
image: ghcr.io/seqan/clang-latest
78+
container:
79+
image: ${{ matrix.image || '' }}
80+
steps:
81+
- name: Checkout
82+
uses: actions/checkout@v4
83+
84+
- name: Setup compiler
85+
if: contains(matrix.os, 'macos')
86+
uses: seqan/actions/setup-compiler@main
87+
with:
88+
compiler: ${{ matrix.compiler }}
89+
90+
- name: Configure tests
91+
run: |
92+
mkdir build && cd build
93+
cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
94+
-DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}"
95+
make gtest_main
96+
97+
- name: Build and run tests
98+
working-directory: build
99+
run: make -k check

cmake/package-lock.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ CPMDeclarePackage (use_ccache
8888
# thresholding
8989
CPMDeclarePackage (thresholding
9090
NAME thresholding
91-
URL "${PROJECT_SOURCE_DIR}/contrib/threshold.tar.gz"
91+
URL "${PROJECT_SOURCE_DIR}/contrib/threshold.tar.gz" # main
9292
URL_HASH SHA256=4990c7fb9778a2fb8a19794b966d57496ca77bcd708b4cee3c93eea6e5b67d80
9393
SYSTEM TRUE
9494
EXCLUDE_FROM_ALL TRUE

include/fpgalign/argument_parsing.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44

55
#pragma once
66

7-
#include <string>
8-
#include <vector>
7+
#include <cstdint> // for uint8_t
8+
#include <string> // for string
9+
#include <vector> // for vector
910

10-
#include <fpgalign/config.hpp>
11+
#include <fpgalign/config.hpp> // for config
1112

1213
enum class subcommand : uint8_t
1314
{

0 commit comments

Comments
 (0)