AVX2 #68
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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: AVX2 | |
on: | |
# Will always run on the default branch | |
schedule: | |
- cron: "0 6 * * SUN" | |
# Enables a manual trigger, may run on any branch | |
workflow_dispatch: | |
concurrency: | |
group: avx2-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
SEQAN3_NO_VERSION_CHECK: 1 | |
TZ: Europe/Berlin | |
ISSUE: 2905 # Issue number to use for reporting failures | |
defaults: | |
run: | |
shell: bash -Eexuo pipefail {0} | |
jobs: | |
build: | |
name: ${{ matrix.build }} ${{ matrix.compiler }} | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 300 | |
if: github.repository_owner == 'seqan' || github.event_name == 'workflow_dispatch' | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: ["clang-18", "clang-17", "gcc-14", "gcc-13", "gcc-12", "gcc-11", "intel"] | |
build: [unit, snippet, performance, header] | |
include: | |
- 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 | |
uses: actions/checkout@v4 | |
- name: Configure tests | |
run: | | |
mkdir build && cd build | |
cmake ../test/${{ matrix.build }} -DCMAKE_BUILD_TYPE=Release \ | |
-DCMAKE_CXX_FLAGS="-mavx2 ${{ matrix.cxx_flags }}" \ | |
-DSEQAN3_BENCHMARK_MIN_TIME=0.01 | |
case "${{ matrix.build }}" in | |
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: | | |
make -k 2>&1 | tee build.log | |
- name: Setup Python | |
if: ${{ failure() }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Process Log | |
if: ${{ failure() }} | |
run: | | |
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: | | |
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() | |
run: gh issue reopen ${{ env.ISSUE }} | |
env: | |
GH_TOKEN: ${{ secrets.SEQAN_ACTIONS_PAT }} | |
GH_REPO: ${{ github.repository }} | |
- 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 }} |