| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| name: sonarcloud |
| |
| on: |
| push: |
| branches: |
| - master |
| - next_stable |
| # pull_request: |
| # types: [opened, synchronize, reopened] |
| |
| jobs: |
| build: |
| name: Build |
| runs-on: ubuntu-latest |
| env: |
| SONAR_SCANNER_VERSION: 4.4.0.2170 |
| SONAR_SERVER_URL: "https://sonarcloud.io" |
| BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed |
| steps: |
| - uses: actions/checkout@v2 |
| with: |
| fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis |
| path: main |
| |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v1 |
| with: |
| java-version: 11 |
| |
| - name: 'Configure Dependencies - Ubuntu' |
| run: | |
| sudo apt-get update |
| sudo apt-get install -y libapr1-dev libaprutil1-dev |
| |
| - name: Download and set up sonar-scanner |
| env: |
| SONAR_SCANNER_DOWNLOAD_URL: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${{ env.SONAR_SCANNER_VERSION }}-linux.zip |
| run: | |
| mkdir -p $HOME/.sonar |
| curl -sSLo $HOME/.sonar/sonar-scanner.zip ${{ env.SONAR_SCANNER_DOWNLOAD_URL }} |
| unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ |
| echo "$HOME/.sonar/sonar-scanner-${{ env.SONAR_SCANNER_VERSION }}-linux/bin" >> $GITHUB_PATH |
| |
| - name: Download and set up build-wrapper |
| env: |
| BUILD_WRAPPER_DOWNLOAD_URL: ${{ env.SONAR_SERVER_URL }}/static/cpp/build-wrapper-linux-x86.zip |
| run: | |
| curl -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip ${{ env.BUILD_WRAPPER_DOWNLOAD_URL }} |
| unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/ |
| echo "$HOME/.sonar/build-wrapper-linux-x86" >> $GITHUB_PATH |
| |
| - name: Run build-wrapper |
| run: | |
| cd main |
| mkdir build |
| cmake -DBUILD_TESTING=off -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 }} |
| run: | |
| cd main |
| sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.build-wrapper-output="${{ env.BUILD_WRAPPER_OUT_DIR }}" |
| |