Skip to content

Doc: Improve thread pinning. #67

Doc: Improve thread pinning.

Doc: Improve thread pinning. #67

Workflow file for this run

name: ci
on: [push]
permissions:
contents: write
jobs:
analysis-headers:
runs-on: ubuntu-latest
container: ubuntu:20.04
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Generate Headers & Compare
run: |
./scripts/generate_aff3ct_header.sh aff3ct-core.hpp
diff aff3ct-core.hpp include/aff3ct-core.hpp
shell: bash
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: analysis-headers
path: aff3ct-core.hpp
build-linux-gcc-x64-avx2:
runs-on: ubuntu-latest
needs: [analysis-headers]
container: registry.gitlab.com/aff3ct/aff3ct/x86_64_ubuntu_gcc:v9.3.0
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
submodules: true
- name: Build
run: |
export CXX="g++"
export CFLAGS="-Wall -funroll-loops -m64 -mavx2 -mfma"
export LFLAGS="-static -static-libgcc -static-libstdc++ -Wl,--whole-archive -lrt -lpthread -Wl,--no-whole-archive"
export CMAKE_OPT="-DAFF3CT_CORE_TESTS=ON -DAFF3CT_CORE_COMPILE_STATIC_LIB=ON -DAFF3CT_CORE_COMPILE_SHARED_LIB=ON -DAFF3CT_CORE_STACKTRACE=OFF"
export NAME="build_linux_gcc_x64_avx2"
source ./ci/tools/threads.sh
./ci/build-linux-macos.sh
shell: bash
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: build-linux-gcc-x64-avx2
path: build_linux_gcc_x64_avx2
build-linux-gcc-coverage:
runs-on: ubuntu-latest
needs: [analysis-headers]
container: registry.gitlab.com/aff3ct/aff3ct/x86_64_ubuntu_gcc:v9.3.0
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
submodules: true
- name: Build
run: |
export CXX="g++"
export CFLAGS="-Wall -funroll-loops -msse4.2 --coverage"
export LFLAGS="--coverage"
export CMAKE_OPT="-DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS_DEBUG=-O0 -DAFF3CT_CORE_TESTS=ON -DAFF3CT_CORE_COMPILE_STATIC_LIB=ON -DAFF3CT_CORE_COMPILE_SHARED_LIB=ON"
source ./ci/tools/threads.sh
./ci/build-linux-macos.sh
shell: bash
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: build
path: build
build-linux-clang:
runs-on: ubuntu-latest
needs: [analysis-headers]
container: registry.gitlab.com/aff3ct/aff3ct/x86_64_ubuntu_clang:v10.0.0
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
submodules: true
- name: Build
run: |
export CXX="clang++"
export CFLAGS="-Wall -Wno-overloaded-virtual -funroll-loops"
export CMAKE_OPT="-DAFF3CT_CORE_TESTS=ON -DAFF3CT_CORE_COMPILE_STATIC_LIB=ON -DAFF3CT_CORE_COMPILE_SHARED_LIB=ON"
export NAME="build_linux_clang"
source ./ci/tools/threads.sh
./ci/build-linux-macos.sh
shell: bash
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: build-linux-clang
path: build_linux_clang
test-coverage-regression:
runs-on: ubuntu-latest
needs: [build-linux-gcc-coverage]
container: registry.gitlab.com/aff3ct/aff3ct/x86_64_ubuntu_coverage
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: build
path: build/
- name: Run Tests & Collect Code Coverage
run: |
ls -lah ./build/
ls -lah ./build/bin/
chmod +x ./build/bin/*
./ci/test-coverage-regression.sh
shell: bash
- name: Generate Code Coverage Report Files
run: ./ci/coverage-linux.sh
shell: bash
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: test-regression-code-coverage-report
path: |
code_coverage_report/
build/Testing
test-memcheck-regression:
runs-on: ubuntu-latest
needs: [analysis-headers]
container: registry.gitlab.com/aff3ct/aff3ct/x86_64_ubuntu_valgrind
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
submodules: true
- name: Build & Memcheck
run: |
export CXX="g++"
export CFLAGS="-Wall -funroll-loops -m64 -mavx2 -mfma"
export CMAKE_OPT="-DCMAKE_BUILD_TYPE=RelWithDebInfo -DAFF3CT_CORE_TESTS=ON -DAFF3CT_CORE_COMPILE_STATIC_LIB=ON -DAFF3CT_CORE_COMPILE_SHARED_LIB=ON -DAFF3CT_CORE_LINK_HWLOC=ON"
source ./ci/tools/threads.sh
./ci/build-linux-macos.sh
cd build
ctest -LE "^skip-memcheck$" -T memcheck
shell: bash
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: test-memcheck-regression
path: build/Testing
coverage:
runs-on: ubuntu-latest
needs: [test-coverage-regression]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: test-regression-code-coverage-report
path: test_regression_code_coverage_report/
- name: Produce the Coverage Report
uses: insightsengineering/coverage-action@v2
with:
# Path to the Cobertura XML report.
path: ./test_regression_code_coverage_report/code_coverage_report/aff3ct-core.xml
# Minimum total coverage, if you want to the
# workflow to enforce it as a standard.
# This has no effect if the `fail` arg is set to `false`.
threshold: 50.000
# Fail the workflow if the minimum code coverage
# reuqirements are not satisfied.
fail: true
# Publish the rendered output as a PR comment
publish: true
# Create a coverage diff report.
diff: true
# Branch to diff against.
# Compare the current coverage to the coverage
# determined on this branch.
diff-branch: master
# This is where the coverage reports for the
# `diff-branch` are stored.
# Branch is created if it doesn't already exist'.
diff-storage: _xml_coverage_reports
# A custom title that can be added to the code
# coverage summary in the PR comment.
coverage-summary-title: "Code Coverage Summary"
deploy:
if: contains( github.ref, 'development')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force