Skip to content

CI: Fix GitHub Actions (12). #21

CI: Fix GitHub Actions (12).

CI: Fix GitHub Actions (12). #21

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@v3
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"
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@v3
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@v3
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@v3
with:
name: build-linux-clang
path: build_linux_clang
# # Takes too much HDD space to be run on the GitHub runners
# build-linux-icpc:
# runs-on: ubuntu-latest
# needs: [analysis-headers]
# container: intel/oneapi-hpckit:2022.2-devel-ubuntu20.04
# steps:
# - name: Checkout Code
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Build
# run: |
# export CXX="icpc"
# export CFLAGS="-Wall -funroll-loops -march=native -std=c++11"
# export CMAKE_OPT="-DAFF3CT_CORE_TESTS=ON -DAFF3CT_CORE_COMPILE_STATIC_LIB=ON -DAFF3CT_CORE_COMPILE_SHARED_LIB=ON"
# export NAME="build_linux_icpc"
# source ./ci/tools/threads.sh
# ./ci/build-linux-macos.sh
# shell: bash
# - name: Upload Artifacts
# uses: actions/upload-artifact@v3
# with:
# name: build-linux-icpc
# path: build_linux_icpc
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@v3
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@v3
with:
name: code-coverage-report
path: code_coverage_report/
coverage:
runs-on: ubuntu-latest
needs: [test-coverage-regression]
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v3
with:
name: code-coverage-report
path: code_coverage_report/
- name: Produce the Coverage Report
uses: insightsengineering/coverage-action@v2
with:
# Path to the Cobertura XML report.
path: ./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@v4
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v3
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force