diff --git a/.gitignore b/.gitignore index 138edd2b0..ee36fa427 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ integration_tests.properties *.iws .idea/ *.pom +jacoco-agent.properties diff --git a/adal/build.gradle b/adal/build.gradle index ff15dcd41..87f479e57 100644 --- a/adal/build.gradle +++ b/adal/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'com.microsoft.identity.buildsystem' version '0.1.0' + id 'com.microsoft.identity.buildsystem' version '0.2.3' id 'com.android.library' id 'pmd' id 'checkstyle' @@ -18,6 +18,22 @@ buildSystem { desugar = desugarCode } +def enableCodeCoverage = true +def enableAndroidTestsCodeCoverage = true + +if (project.hasProperty("codeCoverageEnabled")) { + enableCodeCoverage = codeCoverageEnabled.toBoolean() +} + +if (project.hasProperty("androidTestsCodeCoverageEnabled")) { + enableAndroidTestsCodeCoverage = androidTestsCodeCoverageEnabled.toBoolean() +} + +codeCoverageReport { + coverage.enabled = enableCodeCoverage + androidTests.enabled = enableAndroidTestsCodeCoverage +} + group = 'com.microsoft.aad' configurations { @@ -68,7 +84,7 @@ android { } buildTypes { debug { - testCoverageEnabled false + testCoverageEnabled enableCodeCoverage debuggable true buildConfigField("String", "VERSION_NAME", "\"${versionName}\"") } diff --git a/azure-pipelines/code-coverage/adal-code-cov.yml b/azure-pipelines/code-coverage/adal-code-cov.yml new file mode 100644 index 000000000..d9d18b7a9 --- /dev/null +++ b/azure-pipelines/code-coverage/adal-code-cov.yml @@ -0,0 +1,73 @@ +# File: azure-pipelines\code-coverage\adal-code-cov.yml +# Description: Code coverage for adal +# Variable: 'mvnAccessToken' was defined in the Variables tab +# https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate +name: $(date:yyyyMMdd)$(rev:.r) + +trigger: none + +pr: + branches: + include: + - '*' + +variables: +- name: BuildParameters.jdkVersion + value: 1.8 +- name: BuildParameters.jdkArchitecture + value: x64 +- name: BuildParameters.javaHomeSelection + value: JDKVersion +- name: robolectricSdkVersion + value: 28 + +resources: + repositories: + - repository: self + type: git + - repository: common + type: github + name: AzureAD/microsoft-authentication-library-common-for-android + ref: dev + endpoint: ANDROID_GITHUB + +jobs: +- job: adal_code_coverage + displayName: ADAL Code Coverage + pool: + name: Hosted Windows 2019 with VS2019 + steps: + - checkout: self + displayName: Checkout ADAL Repository + clean: true + submodules: recursive + persistCredentials: True + - template: azure-pipelines/templates/steps/automation-cert.yml@common + - task: JavaToolInstaller@0 + displayName: Use Java 8 + inputs: + jdkArchitectureOption: x64 + jdkSourceOption: PreInstalled + - task: Gradle@1 + displayName: Assemble Release + inputs: + tasks: clean adal:assembleLocal + publishJUnitResults: false + jdkVersion: $(BuildParameters.jdkVersion) + jdkArchitecture: $(BuildParameters.jdkArchitecture) + sqGradlePluginVersion: 2.0.1 + - task: Gradle@2 + displayName: Run ADAL Code Coverage + inputs: + tasks: adal:localDebugAdalUnitTestCoverageReport -Plabtest -ProbolectricSdkVersion=${{variables.robolectricSdkVersion}} -PcodeCoverageEnabled=true -PandroidTestsCodeCoverageEnabled=true + - task: PublishCodeCoverageResults@1 + displayName: Publish Code Coverage Report + inputs: + summaryFileLocation: '$(Build.SourcesDirectory)\adal\build\reports\jacoco\localDebugAdalUnitTestCoverageReport\localDebugAdalUnitTestCoverageReport.xml' + reportDirectory: '$(Build.SourcesDirectory)\adal\build\reports\jacoco\localDebugAdalUnitTestCoverageReport\html' + javaHomeSelection: $(BuildParameters.javaHomeSelection) + jdkVersion: 1.11 + - bash: | + curl -Os https://uploader.codecov.io/latest/windows/codecov.exe + ./codecov.exe -v -t '$(codecovToken)' -B '$(System.PullRequest.SourceBranch)' -P '$(System.PullRequest.PullRequestNumber)' -f "./adal/build/reports/jacoco/localDebugAdalUnitTestCoverageReport/localDebugAdalUnitTestCoverageReport.xml" + displayName: Upload Code Coverage to Codecov and the PR diff --git a/common b/common index 179b5f475..008e81527 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 179b5f4751e77f2ee703fc22c0fa95c5a10a66ac +Subproject commit 008e81527a0e19b9ce34ae3111401ec0dc92425e