sogno-platform / dpsim

Real-time power system simulator including powerflow, (dynamic) phasors and EMT
https://sogno.energy/dpsim/
Mozilla Public License 2.0
67 stars 49 forks source link

Improve the code checking pipeline to keep sonar up-to-date automatically #271

Closed leonardocarreras closed 1 month ago

leonardocarreras commented 5 months ago
          There is a also new way (not sure if better) to make this type of solutions in this style [here](https://github.com/SonarSource/sonarcloud-github-c-cpp)
name: Build
on:
  push:
    branches:
      - main
  pull_request:
    types: [opened, synchronize, reopened]
jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    env:
      BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
      - name: Install sonar-scanner and build-wrapper
        uses: SonarSource/sonarcloud-github-c-cpp@v1
      - 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 sonar-scanner
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }} # Put the name of your token here
        run: |
          sonar-scanner --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}"

As an future option, we can move to that and use the SonarSource/sonarcloud-github-c-cpp@v1 action. The clear advantage is that this solution does not install separately JDK, then we get rid of the maintenance of the toolchain

Originally posted by @dinkelbachjan in https://github.com/sogno-platform/dpsim/issues/265#issuecomment-1907871409