pool: vmImage: 'vs2017-win2016' variables: Prerelease: 'ci' buildId: "1$(Build.BuildId)" buildProjects: '**/src/**/*.csproj' steps: # Print buildId - script: | echo "BuildId = $(buildId)" displayName: 'Print buildId' # Install Tools (SonarScanner) - script: | dotnet tool install --global dotnet-sonarscanner displayName: Install Tools (SonarScanner) # Begin SonarScanner # See also # - https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools, else you get this error: `Since you just installed the .NET Core SDK, you will need to reopen the Command Prompt window before running the tool you installed.` # - https://github.com/dotnet/cli/issues/8368 # - https://github.com/Microsoft/vsts-tasks/issues/8291 # - script: | %USERPROFILE%\.dotnet\tools\dotnet-sonarscanner begin /k:"wiremock" /d:sonar.organization="stefh-github" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.login="$(SONAR_TOKEN)" /v:"$(buildId)" /d:sonar.cs.opencover.reportsPaths="**\coverage.opencover.xml" displayName: Begin SonarScanner # Build source, tests and run tests for net452 and netcoreapp2.1 (with coverage) - script: | dotnet test ./test/WireMock.Net.Tests/WireMock.Net.Tests.csproj --configuration Debug --framework net452 dotnet test ./test/WireMock.Net.Tests/WireMock.Net.Tests.csproj --configuration Debug --framework netcoreapp2.1 --logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=opencover displayName: 'Build source, tests and run tests for net452 and netcoreapp2.1 (with coverage)' # End SonarScanner - script: | %USERPROFILE%\.dotnet\tools\dotnet-sonarscanner end /d:sonar.login="$(SONAR_TOKEN)" displayName: End SonarScanner # Upload coverage to codecov.io - script: | %USERPROFILE%\.nuget\packages\codecov\1.1.0\tools\codecov.exe -f "./test/WireMock.Net.Tests/coverage.opencover.xml" -t $(CODECOV_TOKEN) displayName: Upload coverage to codecov.io - task: PublishTestResults@2 inputs: testRunner: VSTest testResultsFiles: '**/*.trx' # Based on https://whereslou.com/2018/09/versioning-and-publishing-nuget-packages-automatically-using-azure-devops-pipelines/ - task: DotNetCoreCLI@2 displayName: Build Release inputs: command: 'build' arguments: /p:Configuration=Release # https://github.com/MicrosoftDocs/vsts-docs/issues/1976 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 --source https://www.myget.org/F/wiremock-net/api/v3/index.json --no-service-endpoint --api-key $(MyGetKey)