Code simplification #181
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
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 | |
- 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 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/file-system-module.git | |
cd file-system-module | |
mkdir build | |
cd build | |
cmake .. | |
make -j4 | |
sudo make install | |
make -j4 unit_tests examples | |
./unit_tests | |
./examples/open_seek_write | |
./examples/jbod | |
lcov --directory . --directory examples/ --capture --output-file coverage.info | |
lcov --remove coverage.info '*/test/*' '*/examples/*' '*/include/*' | |
bash <(curl -s https://codecov.io/bash) -f coverage.info -t ${CODECOV_TOKEN} | |
# with: | |
#token: ${{ secrets.CODECOV_TOKEN }} | |
#verbose: true | |
# directory: ./coverage/reports/ | |
# env_vars: OS,PYTHON | |
# fail_ci_if_error: true | |
# files: ./coverage1.xml,./coverage2.xml,!./cache | |
# flags: unit_tests | |
# name: codecov-umbrella | |
- name: Install sonar-scanner and build-wrapper | |
uses: SonarSource/sonarcloud-github-c-cpp@v2 | |
- 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 examples | |
./unit_tests | |
./examples/open_seek_write | |
./examples/jbod | |
- 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: Run sonar-scanner | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
run: | | |
sonar-scanner --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/file-system-module.git | |
echo "Building documentation..." | |
cd file-system-module/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 "[email protected]" | |
git config --global user.name "GitHub Actions" | |
git clone --quiet --branch=gh-pages https://${TOKEN_GITHUB}@github.com/simgrid/file-system-module.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!" |