Skip to content

Commit

Permalink
[INFRA] Update CI
Browse files Browse the repository at this point in the history
  • Loading branch information
eseiler committed Oct 15, 2024
1 parent 204c49d commit 40940f3
Show file tree
Hide file tree
Showing 9 changed files with 65 additions and 149 deletions.
10 changes: 1 addition & 9 deletions .github/workflows/ci_cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: submodules/seqan

- name: Configure tests
run: |
Expand All @@ -68,7 +60,7 @@ jobs:
-DCMAKE_DEPENDS_USE_COMPILER="${{ matrix.cmake_depends_use_compiler }}" \
-DSEQAN3_USE_INCLUDE_DEPENDENCIES="${{ matrix.use_include_dependencies }}"
case "${{ matrix.build }}" in
unit) make gtest_build;;
unit) make gtest_main;;
external_project) make seqan3_test_prerequisite sharg_test_prerequisite;;
esac
Expand Down
9 changes: 1 addition & 8 deletions .github/workflows/ci_coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,8 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0

- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: submodules/seqan

- name: Load ccache
uses: actions/cache@v4
with:
Expand All @@ -68,7 +61,7 @@ jobs:
run: |
mkdir build && cd build
cmake ../test/coverage -DCMAKE_BUILD_TYPE=Coverage
make gtest_build
make gtest_main
- name: Build tests
working-directory: build
Expand Down
11 changes: 2 additions & 9 deletions .github/workflows/ci_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: submodules/seqan

- name: Load ccache
uses: actions/cache@v4
Expand All @@ -66,10 +58,11 @@ jobs:
- name: Configure tests
run: |
$CXX --version || true
cmake --version || true
mkdir build && cd build
cmake ../test/unit -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}"
make gtest_build
make gtest_main
- name: Build tests
working-directory: build
Expand Down
10 changes: 1 addition & 9 deletions .github/workflows/ci_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: submodules/seqan

- name: Setup toolchain
uses: seqan/actions/setup-toolchain@main
Expand All @@ -56,7 +48,7 @@ jobs:
run: |
mkdir build && cd build
cmake ../test/unit -DCMAKE_BUILD_TYPE=Release
make gtest_build
make gtest_main
- name: Build tests
working-directory: build
Expand Down
14 changes: 3 additions & 11 deletions .github/workflows/ci_misc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: submodules/seqan

- name: Load ccache
uses: actions/cache@v4
Expand All @@ -71,9 +63,9 @@ jobs:
-DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" \
-DSEQAN3_BENCHMARK_MIN_TIME=0.01
case "${{ matrix.build }}" in
snippet) make gtest_build;;
performance) make gbenchmark_build;;
header) make gtest_build gbenchmark_build;;
snippet) make gtest_main;;
performance) make benchmark_main;;
header) make gtest_main benchmark_main;;
esac
- name: Build tests
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/cron_api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true

- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: submodules/seqan

- name: Configure tests
run: |
Expand Down
17 changes: 5 additions & 12 deletions .github/workflows/cron_avx2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,6 @@ jobs:
uses: actions/checkout@v4
with:
path: seqan3
submodules: true

- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: seqan3/submodules/seqan

- name: Setup compiler
uses: seqan/actions/setup-compiler@main
Expand All @@ -67,16 +60,16 @@ jobs:
-DSEQAN3_BENCHMARK_MIN_TIME=0.01 \
-DCMAKE_CXX_FLAGS="-mavx2"
case "${{ matrix.build }}" in
unit) make -j2 gtest_build;;
snippet) make -j2 gtest_build;;
performance) make -j2 gbenchmark_build;;
header) make -j2 gtest_build gbenchmark_build;;
unit) make gtest_main;;
snippet) make gtest_main;;
performance) make benchmark_main;;
header) make gtest_main benchmark_main;;
esac
- name: Build tests
run: |
cd seqan3-build
make -k -j2 2>&1 | tee build.log
make -k 2>&1 | tee build.log
- name: Setup Python
if: ${{ failure() }}
Expand Down
127 changes: 52 additions & 75 deletions .github/workflows/cron_latest_libraries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
name: Latest Libraries

on:
# Will always run on the default branch
schedule:
- cron: "0 4 * * SUN"
# Enables a manual trigger, may run on any branch
workflow_dispatch:

Expand All @@ -33,73 +30,44 @@ jobs:
strategy:
fail-fast: false
matrix:
compiler: [11, 12, 13]
compiler: ["clang-18", "clang-17", "gcc-14", "gcc-13", "gcc-12", "gcc-11", "intel"]
build: [unit, snippet, performance, header]
include:
- compiler: 12
build: unit
cxx_flags: "-Wno-restrict" # Bogus errors in gtest that won't be fixed upstream

- compiler: "intel"
cxx_flags: "-fp-model=strict -Wno-overriding-option"
container:
image: ghcr.io/seqan/${{ matrix.compiler }}
volumes:
- /home/runner:/home/runner
steps:
- name: Checkout SeqAn3
- name: Checkout
uses: actions/checkout@v4
with:
path: seqan3
submodules: true

- name: Update all submodules
run: |
cd seqan3
git submodule status
git submodule update --recursive --remote
git submodule status
- name: Update googletest
run: |
grep 'SEQAN3_GTEST_TAG ".*"' seqan3/test/cmake/seqan3_require_test.cmake
sed -i 's/SEQAN3_GTEST_TAG ".*"/SEQAN3_GTEST_TAG "main"/' seqan3/test/cmake/seqan3_require_test.cmake
grep 'SEQAN3_GTEST_TAG ".*"' seqan3/test/cmake/seqan3_require_test.cmake

- name: Update googlebenchmark
- name: Update dependencies
run: |
grep 'SEQAN3_BENCHMARK_TAG ".*"' seqan3/test/cmake/seqan3_require_benchmark.cmake
sed -i 's/SEQAN3_BENCHMARK_TAG ".*"/SEQAN3_BENCHMARK_TAG "main"/' seqan3/test/cmake/seqan3_require_benchmark.cmake
grep 'SEQAN3_BENCHMARK_TAG ".*"' seqan3/test/cmake/seqan3_require_benchmark.cmake
- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: seqan3/submodules/seqan

- name: Setup compiler
uses: seqan/actions/setup-compiler@main
with:
compiler: gcc-${{ matrix.compiler }}

- name: Install CMake
uses: seqan/actions/setup-cmake@main
with:
cmake: 3.16.9
FILE="build_system/package-lock.cmake"
sed -i -E 's@(set \(SEQAN3_\S+_VERSION )[^\)]+\)@\1main)@g' $FILE
sed -i -E 's@VERSION( \$\{SEQAN3_\S+_VERSION\})@GIT_TAG\1@g' $FILE
sed -i -E 's@SEQAN3_(SDSL|CEREAL)_VERSION main@SEQAN3_\1_VERSION master@g' $FILE
cat $FILE
- name: Configure tests
run: |
mkdir seqan3-build
cd seqan3-build
mkdir build && cd build
cmake ../seqan3/test/${{ matrix.build }} -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" \
-DSEQAN3_BENCHMARK_MIN_TIME=0.01
case "${{ matrix.build }}" in
unit) make -j2 gtest_build;;
snippet) make -j2 gtest_build;;
performance) make -j2 gbenchmark_build;;
header) make -j2 gtest_build gbenchmark_build;;
unit) make gtest_main;;
snippet) make gtest_main;;
performance) make benchmark_main;;
header) make gtest_main benchmark_main;;
esac
- name: Build tests
working-directory: build
run: |
cd seqan3-build
make -k -j2 2>&1 | tee build.log
make -k 2>&1 | tee build.log
- name: Setup Python
if: ${{ failure() }}
Expand All @@ -110,38 +78,47 @@ jobs:
- name: Process Log
if: ${{ failure() }}
run: |
FILE="seqan3/.github/ISSUE_TEMPLATE/cron_comment_template.md"
python3 seqan3/.github/workflows/scripts/process_compiler_error_log.py seqan3-build/build.log >> $FILE
FILE=".github/ISSUE_TEMPLATE/cron_comment_template.md"
python3 .github/workflows/scripts/process_compiler_error_log.py build/build.log >> $FILE
- name: Create comment body
if: ${{ failure() }}
id: comment-body
run: |
FILE="seqan3/.github/ISSUE_TEMPLATE/cron_comment_template.md"
URL="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
sed -i "s@{{ build }}@${{ matrix.build }}@" $FILE
sed -i "s@{{ compiler }}@${{ matrix.compiler }}@" $FILE
sed -i "s@{{ url }}@$URL@" $FILE
echo "body<<EOF" >> $GITHUB_OUTPUT
cat $FILE >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
if [[ "${{ job.status }}" == "success" ]]; then
echo "body=Success ${{ matrix.build }} on ${{ matrix.compiler }}" >> $GITHUB_OUTPUT
else
FILE=".github/ISSUE_TEMPLATE/cron_comment_template.md"
URL="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
sed -i "s@{{ build }}@${{ matrix.build }}@" $FILE
sed -i "s@{{ compiler }}@${{ matrix.compiler }}@" $FILE
sed -i "s@{{ url }}@$URL@" $FILE
echo "body<<EOF" >> $GITHUB_OUTPUT
cat $FILE >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
fi
- name: Reopen issue
if: ${{ failure() }}
uses: octokit/[email protected]
with:
route: PATCH /repos/{owner}/{repo}/issues/{issue_number}
owner: ${{ github.repository_owner }}
repo: seqan3
issue_number: ${{ env.ISSUE }}
state: "open"
if: failure()
run: gh issue reopen ${{ env.ISSUE }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_TOKEN: ${{ secrets.SEQAN_ACTIONS_PAT }}
GH_REPO: ${{ github.repository }}

- name: Create comment
if: ${{ failure() }}
- name: Find Comment
if: always()
uses: peter-evans/find-comment@v3
id: find_comment
with:
issue-number: ${{ env.ISSUE }}
body-includes: ${{ matrix.build }} on ${{ matrix.compiler }}

- name: Update comment
if: always()
uses: peter-evans/create-or-update-comment@v4
with:
comment-id: ${{ steps.find_comment.outputs.comment-id }}
issue-number: ${{ env.ISSUE }}
body: ${{ steps.comment-body.outputs.body }}

edit-mode: replace
token: ${{ secrets.SEQAN_ACTIONS_PAT }}
8 changes: 0 additions & 8 deletions .github/workflows/ram_usage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,6 @@ jobs:
uses: actions/checkout@v4
with:
path: seqan3
submodules: true

- name: Checkout SeqAn2
uses: actions/checkout@v4
with:
repository: seqan/seqan
path: seqan3/submodules/seqan
fetch-depth: 1

- name: Setup compiler
uses: seqan/actions/setup-compiler@main
Expand Down

0 comments on commit 40940f3

Please sign in to comment.