Test_qa_last #76
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: QA-PR-CPP-UBUNTU | |
on: | |
pull_request: | |
types: [opened, ready_for_review] | |
release: | |
types: [created, published, released] | |
jobs: | |
clang-tidy: | |
name: clang-tidy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Boost | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y libboost-all-dev | |
- name: Install clang-tidy | |
run: | | |
sudo apt install -y clang-tidy-14 | |
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-14 100 | |
- name: Checkout sources | |
uses: actions/checkout@v1 | |
- name: Configure 3rd parties | |
run: > | |
cmake -S $GITHUB_WORKSPACE/metrix-simulator/external -B $GITHUB_WORKSPACE/metrix-simulator/build/external | |
- name: Build 3rd parties | |
run: > | |
cmake --build $GITHUB_WORKSPACE/metrix-simulator/build/external --parallel 2 | |
- name: Configure CMake | |
run: > | |
cmake -S $GITHUB_WORKSPACE/metrix-simulator -B $GITHUB_WORKSPACE/metrix-simulator/build | |
-DCMAKE_BUILD_TYPE=Debug | |
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON | |
- name: Clang Tidy | |
run: | | |
export MODIFIED_FILES=$(git diff --name-only --diff-filter=d origin/${{ github.base_ref }} origin/${{ github.head_ref }} | grep -E ".*(metrix-simulator/src|metrix-simulator/log).*\.(cpp|hpp)$") | |
echo $MODIFIED_FILES | |
if [ -n "$MODIFIED_FILES" ]; then | |
clang-tidy $MODIFIED_FILES -p $GITHUB_WORKSPACE/metrix-simulator/build | |
fi | |
qa: | |
name: QA - full | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Java 17 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 17 | |
- name: Install gcovr | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y gcovr | |
- name: Install Sonar wrapper | |
working-directory: ${{ runner.workspace }} | |
run: | | |
wget https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip | |
unzip build-wrapper-linux-x86.zip | |
- name: Install Sonar scanner | |
working-directory: ${{ runner.workspace }} | |
run: | | |
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}.zip | |
unzip sonar-scanner-cli-${SONAR_SCANNER_VERSION}.zip | |
ln -s sonar-scanner-${SONAR_SCANNER_VERSION} sonar | |
rm sonar-scanner-cli-${SONAR_SCANNER_VERSION}.zip | |
env: | |
SONAR_SCANNER_VERSION: 3.3.0.1492 | |
- name: Install Boost | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y libboost-all-dev | |
- name: Checkout sources | |
uses: actions/checkout@v1 | |
- name: Configure 3rd parties | |
run: > | |
cmake -S $GITHUB_WORKSPACE/metrix-simulator/external -B $GITHUB_WORKSPACE/metrix-simulator/build/external | |
- name: Build 3rd parties | |
run: > | |
cmake --build $GITHUB_WORKSPACE/metrix-simulator/build/external --parallel 2 | |
- name: Configure CMake | |
run: > | |
cmake -Wno-dev -S $GITHUB_WORKSPACE/metrix-simulator -B $GITHUB_WORKSPACE/metrix-simulator/build | |
-DCMAKE_BUILD_TYPE=Debug | |
-DCODE_COVERAGE=TRUE | |
-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/metrix-simulator/build/install | |
- name: Build | |
run: > | |
${{ runner.workspace }}/build-wrapper-linux-x86/build-wrapper-linux-x86-64 | |
--out-dir $GITHUB_WORKSPACE/metrix-simulator/build/output | |
cmake --build $GITHUB_WORKSPACE/metrix-simulator/build --parallel 2 --target install | |
- name: Tests | |
run: cd $GITHUB_WORKSPACE/metrix-simulator/build && ctest -j8 --output-on-failure | |
- name: Code coverage | |
run: cmake --build $GITHUB_WORKSPACE/metrix-simulator/build --target code-coverage | |
- name: Sonarcloud | |
working-directory: ${{ runner.workspace }}/powsybl-metrix/metrix-simulator | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
run: > | |
${{ runner.workspace }}/sonar/bin/sonar-scanner | |
-Dsonar.host.url=https://sonarcloud.io | |
- name: Prepare Metrix install | |
if: github.event_name == 'release' | |
id: metrix-install | |
run: | | |
ARCHIVE_NAME="metrix-simulator-ubuntu.zip" | |
ARCHIVE_PATH="$PWD/${ARCHIVE_NAME}" | |
cd metrix-simulator/build/install/ | |
zip -r $ARCHIVE_PATH bin etc | |
echo "::set-output name=archive_name::$ARCHIVE_NAME" | |
echo "::set-output name=archive_path::$ARCHIVE_PATH" | |
- name: Upload OR-Tools install artifact | |
if: github.event_name == 'release' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.metrix-install.outputs.archive_name }} | |
path: ${{ steps.metrix-install.outputs.archive_path }} |