Test qa #34
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-CENTOS7 | |
on: | |
pull_request: | |
types: [opened, synchronize, edited] | |
release: | |
types: [created, published, released] | |
jobs: | |
clang-tidy: | |
name: clang-tidy | |
runs-on: ubuntu-latest | |
container: 'centos:centos7' | |
steps: | |
- name: Install Dependancies | |
run: | | |
yum update -y | |
yum install -y epel-release | |
yum install -y git redhat-lsb-core make wget centos-release-scl scl-utils | |
yum install -y devtoolset-9 | |
- name: Setup cmake | |
uses: jwlawson/[email protected] | |
with: | |
cmake-version: '3.22.x' | |
- name: Checkout sources | |
uses: actions/checkout@v1 | |
- name: Download Boost-release | |
uses: dsaltares/fetch-gh-release-asset@master | |
with: | |
repo: 'ARnDOSrte/Boost' | |
file: 'boost_1_73_0.zip' | |
target: 'boost_1_73_0.zip' | |
token: ${{ secrets.TEST_TOKEN_RELEASE }} | |
- name: Unzip Boost | |
run: unzip boost_1_73_0.zip | |
- name: Install clang-tidy | |
run: | | |
# yum install -y clang-tidy-14 | |
# yum update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-14 100 | |
yum install -y centos-release-scl | |
yum install -y llvm-toolset-7.0 | |
scl enable llvm-toolset-7.0 bash | |
- name: Configure 3rd parties | |
run: | | |
source /opt/rh/devtoolset-9/enable | |
cmake -S $GITHUB_WORKSPACE/metrix-simulator/external -B $GITHUB_WORKSPACE/metrix-simulator/build-linux/external | |
- name: Build 3rd parties | |
run: > | |
cmake --build $GITHUB_WORKSPACE/metrix-simulator/build/external --parallel 2 | |
- name: Configure CMake | |
run: | | |
source /opt/rh/devtoolset-9/enable | |
cmake -S $GITHUB_WORKSPACE/metrix-simulator -B $GITHUB_WORKSPACE/metrix-simulator/build | |
-DCMAKE_BUILD_TYPE=Debug | |
-DBoost_ROOT=$GITHUB_WORKSPACE/__w/Boost/Boost/boost_1_73_0/installBoost | |
-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)$") | |
if [ -n "$MODIFIED_FILES" ]; then | |
clang-tidy $MODIFIED_FILES -p $GITHUB_WORKSPACE/metrix-simulator/build | |
fi | |
qa: | |
name: QA - full | |
runs-on: ubuntu-latest | |
container: 'centos:centos7' | |
steps: | |
- name: Install Dependancies | |
run: | | |
yum update -y | |
yum install -y epel-release | |
yum install -y git redhat-lsb-core make wget centos-release-scl scl-utils | |
yum install -y devtoolset-9 | |
# yum install -y python-pip | |
# pip install --upgrade pip | |
# yum install -y python-devel | |
# yum groupinstall -y 'development tools' | |
- name: Setup cmake | |
uses: jwlawson/[email protected] | |
with: | |
cmake-version: '3.22.x' | |
- name: Install Java 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
# - name: Install gcovr | |
# run: pip install 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: Checkout sources | |
uses: actions/checkout@v1 | |
- name: Download Boost-release | |
uses: dsaltares/fetch-gh-release-asset@master | |
with: | |
repo: 'ARnDOSrte/Boost' | |
file: 'boost_1_73_0.zip' | |
target: 'boost_1_73_0.zip' | |
token: ${{ secrets.TEST_TOKEN_RELEASE }} | |
- name: Unzip Boost | |
run: unzip boost_1_73_0.zip | |
- name: Configure 3rd parties | |
run: | | |
source /opt/rh/devtoolset-9/enable | |
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 (For Release) | |
if: github.event_name == 'release' | |
run: | | |
source /opt/rh/devtoolset-9/enable | |
cmake -Wno-dev -S $GITHUB_WORKSPACE/metrix-simulator -B $GITHUB_WORKSPACE/metrix-simulator/build | |
-DCMAKE_BUILD_TYPE=Debug | |
-DBoost_ROOT=$GITHUB_WORKSPACE/__w/Boost/Boost/boost_1_73_0/installBoost | |
-DCODE_COVERAGE=TRUE | |
-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/metrix-simulator/build/install | |
- name: Configure CMake (For Pull Request) | |
if: github.event_name != 'release' | |
run: | | |
source /opt/rh/devtoolset-9/enable | |
cmake -Wno-dev -S $GITHUB_WORKSPACE/metrix-simulator -B $GITHUB_WORKSPACE/metrix-simulator/build -DCMAKE_BUILD_TYPE=Debug -DBoost_ROOT=$GITHUB_WORKSPACE/__w/Boost/Boost/boost_1_73_0/installBoost -DBoost_INCLUDE_DIR=$GITHUB_WORKSPACE/__w/Boost/Boost/boost_1_73_0/installBoost -DCODE_COVERAGE=FALSE -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/metrix-simulator/build/install | |
- name: Build | |
run: | | |
echo ${{ runner.workspace }} | |
ls | |
cmake --build $GITHUB_WORKSPACE/metrix-simulator/build --target install --parallel 2 | |
- name: Tests | |
run: cd $GITHUB_WORKSPACE/metrix-simulator/build && ctest -j8 -R "bug_pne" --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-centos7.zip" | |
ARCHIVE_PATH="$PWD/${ARCHIVE_NAME}" | |
zip $ARCHIVE_PATH /__w/powsybl-metrix/powsybl-metrix/metrix-simulator/build-linux/install/bin/metrix-simulator | |
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 }} |