Skip to content

Find optimal mesh resolution regarding wavelength #241

Find optimal mesh resolution regarding wavelength

Find optimal mesh resolution regarding wavelength #241

name: Test SonarCloud
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
# schedule:
# cron: "0 13 * * 1" # Every monday at 13h
env:
SONAR_SCANNER_VERSION: 6.2.1.4610
jobs:
run:
runs-on: ubuntu-latest
steps:
# - name: "Dependencies: APT"
# run: |
# sudo apt update
# sudo apt install -y \
# qt6-base-dev \
# catch2 \
# gcovr \
# texlive-xetex \
# cairosvg \
# imagemagick
# libxml2-utils
- name: 'Dependencies: Nix'
uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Setup Nix cache
uses: DeterminateSystems/magic-nix-cache-action@v13
- name: "Dependencies: Sonar"
run: |
mkdir -p /tmp/sonar
wget \
https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip \
-O /tmp/sonar/build-wrapper-linux-x86.zip
unzip \
-o /tmp/sonar/build-wrapper-linux-x86.zip \
-d /tmp/sonar/
# - name: "Dependencies: Report.CI"
# run: |
# curl https://report.ci/report.py \
# > /tmp/report.py
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build Nix environment
run: nix develop --no-update-lock-file --command true
- name: Configure
run: |
nix develop --no-update-lock-file --command \
cmake \
-S. \
-Bbuild \
-DCMAKE_BUILD_TYPE=Coverage \
-DCMAKE_CXX_COMPILER=g++ \
-DSONAR=ON \
-DCOVERAGE_ERROR=OFF
- name: Build
run: |
nix develop --no-update-lock-file --command \
/tmp/sonar/build-wrapper-linux-x86/build-wrapper-linux-x86-64 \
--out-dir build_wrapper_output_directory \
cmake --build build --target all unittest
- name: Coverage
run: |
nix develop --no-update-lock-file --command \
cmake --build build --target coverage
- name: Scan
run: |
nix develop --no-update-lock-file --command \
sonar-scanner \
-Dproject.settings=.sonar-project.properties \
-Dsonar.cfamily.build-wrapper-output=build_wrapper_output_directory \
-Dsonar.host.url="https://sonarcloud.io" \
-Dsonar.token=${{ secrets.SONAR_TOKEN }} \
-Dsonar.cfamily.cache.enabled=false
# - name: Produce test report
# run: |
# build/test/unit/openemsh_unittest \
# -r xml::out=build/test/unit/openemsh_unittest_result.catch.xml \
# || true
#
# - name: Downgrade Catch XML format
# run: |
# sed \
# -i build/test/unit/openemsh_unittest_result.catch.xml \
# -e 's/<Catch2TestRun/<Catch/g' \
# -e '3i\<Group name="openemsh_unittest">' \
# -e "s/^<\/Catch2TestRun>/<\/Group>/"
# cat build/test/unit/openemsh_unittest_result.catch.xml \
# | tail -3 \
# | head -1 \
# >> build/test/unit/openemsh_unittest_result.catch.xml
# sed \
# -i build/test/unit/openemsh_unittest_result.catch.xml \
# -e '$a\</Catch>'
# xmllint \
# build/test/unit/openemsh_unittest_result.catch.xml \
# -o build/test/unit/openemsh_unittest_result.catch.xml \
# --format
#
# - name: Export test report
# run: |
# python /tmp/report.py \
# --name "Unittest"
# --token ${{ secrets.REPORT_CI_TOKEN }} \
# --include-as-catch build/test/unit/*.catch.xml
- name: Produce test report
run: |
nix develop --no-update-lock-file --command bash -c '\
build/test/unit/openemsh_unittest \
-r junit::out=build/test/unit/openemsh_unittest_result.xml \
|| true'
- name: Export test report
uses: dorny/test-reporter@v2
with:
name: Unit tests
path: build/test/unit/openemsh_unittest_result.xml
reporter: java-junit
fail-on-error: false