diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 25e16ddfe..2a58f5960 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,3 +40,34 @@ jobs: with: name: app path: app/build/outputs/apk/debug/*.apk + sonar: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + + - name: Set up JDK 11 + uses: actions/setup-java@v1.4.3 + with: + java-version: 11 # Sonar requires JDK 11 + + - name: Cache SonarCloud packages + uses: actions/cache@v2 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + + - name: Cache Gradle packages + uses: actions/cache@v2 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + restore-keys: ${{ runner.os }}-gradle + + - name: Build and analyze + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: ./gradlew build sonarqube --info \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 3f1803761..7a3f10e34 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,7 @@ +plugins { + id "org.sonarqube" version "3.1.1" +} + apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' @@ -158,6 +162,14 @@ afterEvaluate { preDebugBuild.dependsOn formatKtlint, runCheckstyle, runKtlint } +sonarqube { + properties { + property "sonar.projectKey", "TeamNewPipe_NewPipe" + property "sonar.organization", "teamnewpipe" + property "sonar.host.url", "https://sonarcloud.io" + } +} + dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.1'