variables: Prerelease: 'ci' buildId: "1$(Build.BuildId)" buildProjects: '**/src/**/*.csproj' jobs: - job: Linux_Build_Test_SonarCloud pool: vmImage: 'Ubuntu-latest' steps: - script: | echo "BuildId = $(buildId)" displayName: 'Print buildId' - task: PowerShell@2 displayName: "Use JDK11 by default" inputs: targetType: 'inline' script: | $jdkPath = $env:JAVA_HOME_11_X64 Write-Host "##vso[task.setvariable variable=JAVA_HOME]$jdkPath" - script: | dotnet dev-certs https --trust || true displayName: 'dotnet dev-certs https' - task: SonarCloudPrepare@1 displayName: 'Prepare analysis on SonarCloud' inputs: SonarCloud: SonarCloud organization: wiremock-net projectKey: 'WireMock-Net_WireMock.Net' projectName: 'WireMock.Net' extraProperties: | sonar.cs.opencover.reportsPaths=**/coverage.netcoreapp3.1.opencover.xml - task: DotNetCoreCLI@2 displayName: 'Build Unit tests' inputs: command: 'build' projects: './test/WireMock.Net.Tests/WireMock.Net.Tests.csproj' arguments: '--configuration Debug --framework netcoreapp3.1' - task: DotNetCoreCLI@2 displayName: 'Execute Unit tests' inputs: command: 'test' projects: './test/WireMock.Net.Tests/WireMock.Net.Tests.csproj' arguments: '--no-build --configuration Debug --framework netcoreapp3.1 --collect:"XPlat Code Coverage" --logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=opencover' - task: SonarCloudAnalyze@1 displayName: 'SonarCloud: Run Code Analysis' - task: SonarCloudPublish@1 displayName: 'SonarCloud: Publish Quality Gate Result' - task: whitesource.ws-bolt.bolt.wss.WhiteSource Bolt@19 displayName: 'WhiteSource Bolt' condition: and(succeeded(), eq(variables['RUN_WHITESOURCE'], 'yes')) - script: | bash <(curl https://codecov.io/bash) -t $(CODECOV_TOKEN) -f ./test/WireMock.Net.Tests/coverage.netcoreapp3.1.opencover.xml displayName: 'codecov' - task: PublishTestResults@2 condition: and(succeeded(), eq(variables['PUBLISH_TESTRESULTS'], 'yes')) inputs: testRunner: VSTest testResultsFiles: '**/*.trx' - task: PublishBuildArtifacts@1 displayName: Publish coverage file inputs: PathtoPublish: '/home/vsts/work/1/s/test/WireMock.Net.Tests/coverage.netcoreapp3.1.opencover.xml' - job: Windows_Build_Test dependsOn: Linux_Build_Test_SonarCloud pool: vmImage: 'windows-2019' steps: - task: DotNetCoreCLI@2 displayName: 'Build Unit tests' inputs: command: 'build' projects: './test/WireMock.Net.Tests/WireMock.Net.Tests.csproj' arguments: '--configuration Debug --framework netcoreapp3.1' - task: DotNetCoreCLI@2 displayName: 'Execute Unit tests' inputs: command: 'test' projects: './test/WireMock.Net.Tests/WireMock.Net.Tests.csproj' arguments: '--no-build --configuration Debug --framework netcoreapp3.1 --collect:"XPlat Code Coverage" --logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=opencover' - job: Windows_Release_to_MyGet dependsOn: Windows_Build_Test pool: vmImage: 'windows-2019' steps: - task: DotNetCoreCLI@2 displayName: Build Release inputs: command: 'build' arguments: /p:Configuration=Release projects: $(buildProjects) - task: DotNetCoreCLI@2 displayName: Pack condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) # Do not run for PullRequests inputs: command: pack configuration: 'Release' packagesToPack: $(buildProjects) nobuild: true packDirectory: '$(Build.ArtifactStagingDirectory)/packages' verbosityPack: 'normal' - task: PublishBuildArtifacts@1 displayName: Publish Artifacts condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) # Do not run for PullRequests inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' - task: DotNetCoreCLI@2 displayName: Push to MyGet condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) # Do not run for PullRequests inputs: command: custom custom: nuget arguments: push $(Build.ArtifactStagingDirectory)\packages\*.nupkg -n true -s https://www.myget.org/F/wiremock-net/api/v3/index.json -k $(MyGetKey)