Skip to content

try again to set sonar on CI #76

try again to set sonar on CI

try again to set sonar on CI #76

Workflow file for this run

name: Build-Linux
on:
push:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rst'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
env:
BUILD_WRAPPER_OUT_DIR: bw-outputs
steps:
- uses: actions/checkout@master
with:
fetch-depth: 0
- name: Install prereqs
run: |
sudo apt-get update
sudo apt-get install -y libgraphviz-dev libboost-all-dev nlohmann-json3-dev pybind11-dev
- name: Install SimGrid
run: |
git clone https://framagit.org/simgrid/simgrid.git
cd simgrid
mkdir build
cd build
cmake -Denable_smpi=OFF -Denable_model-checking=OFF ..
make -j4
sudo make install
- name: Install FSMod
run: |
git clone https://github.com/simgrid/file-system-module.git
cd file-system-module
mkdir build
cd build
cmake ..
make -j4
sudo make install
- name: Install Google Tests
run: |
wget https://github.com/google/googletest/archive/refs/tags/release-1.11.0.tar.gz
tar xf release-1.11.0.tar.gz
cd googletest-release-1.11.0
cmake .
make -j4
sudo make install
- name: Install lcov and gcovr
run: |
sudo apt-get -y install lcov gcovr
- name: Run tests, compute coverage
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
git clone https://github.com/simgrid/DTLMod.git
cd DTLMod
mkdir build
cd build
cmake ..
make -j4
sudo make install
make -j4 unit_tests
./unit_tests
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export PYTHONPATH="/usr/local/lib/python3.12/dist-packages/"
cd test/python
python ./unit_tests_python.py
cd ../..
lcov --keep-going --directory . --capture --output-file coverage.info
lcov --remove coverage.info '*/test/*' '*/include/*'
bash <(curl -s https://codecov.io/bash) -f coverage.info -t ${CODECOV_TOKEN}
- name: Install sonar-scanner and build-wrapper
uses: SonarSource/sonarqube-scan-action/install-build-wrapper@v6
- name: Run build-wrapper
run: |
mkdir build
cmake -S . -B build
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build build/ --config Release
- name: Run tests to generate coverage statistics
run: |
cd build
make -j4 unit_tests
./unit_tests
export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
export PYTHONPATH="/usr/local/lib/python3.12/dist-packages/"
cd test/python
python ./unit_tests_python.py
cd ../..
- name: Collect coverage into one XML report
run: |
gcovr -e test -e examples --sonarqube -u -o coverage.xml --exclude-throw-branches \
--gcov-ignore-parse-errors --exclude-unreachable-branches
- name: SonarQube Scan
uses: SonarSource/sonarqube-scan-action@v6
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
with:
args: >
--define "sonar.cfamily.compile-commands=${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" \
--define sonar.coverageReportPaths=coverage.xml"
- name: Install Doxygen and Sphinx
run: |
sudo apt-get -y install doxygen
sudo apt-get -y install python3-sphinx
pip install sphinx_rtd_theme
pip install recommonmark
pip install breathe
pip install defusedxml
- name: Build and Deploy Documentation
env:
TOKEN_GITHUB: ${{ secrets.TOKEN_GITHUB }}
run: |
#git clone https://github.com/simgrid/DTLMod.git
echo "Building documentation..."
cd DTLMod/build
pwd
cmake ..
make doc
mkdir $HOME/gh-pages-to-deploy
cp -r ./docs/latest/* $HOME/gh-pages-to-deploy/
cd ../..
echo "Updating gh-pages branch..."
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions"
echo "git clone -q -b gh-pages https://${TOKEN_GITHUB}@github.com/simgrid/DTLMod.git gh-pages"
git clone -b gh-pages https://${TOKEN_GITHUB}@github.com/simgrid/DTLMod.git gh-pages > /dev/null
cd gh-pages
cp -Rf $HOME/gh-pages-to-deploy/* .
touch .nojekyll
git add -f .
git diff-index --quiet HEAD || git commit -m "GitHub build $GITHUB_RUN_NUMBER"
git push -fq origin gh-pages > /dev/null
echo "Done updating gh-pages!"