# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core name: $(Major).$(Minor).$(Patch).$(Revision) trigger: - master pr: - master variables: - group: Version - name: Revision value: $[counter(format('{0}.{1}.{2}', variables.Major, variables.Minor, variables.Patch), 1)] - name: BuildVersion value: $(Major).$(Minor).$(Patch) - name: InformationalVersion # do not rename (MSBuild property) value: $(Major).$(Minor).$(Patch)+$(Build.SourceVersion) pool: vmImage: windows-latest strategy: matrix: Debug: BuildConfiguration: Debug Release: BuildConfiguration: Release steps: - task: DotNetCoreCLI@2 displayName: Build inputs: command: build projects: src\WinSW.sln arguments: -c $(BuildConfiguration) -p:Version=$(BuildVersion) - script: | dotnet publish -c $(BuildConfiguration) -f net5.0-windows -r win-x64 src\WinSW\WinSW.csproj -p:PublishSingleFile=true -p:PublishTrimmed=true -p:Version=$(BuildVersion) dotnet publish -c $(BuildConfiguration) -f net5.0-windows -r win-x86 src\WinSW\WinSW.csproj -p:PublishSingleFile=true -p:PublishTrimmed=true -p:Version=$(BuildVersion) displayName: Build - script: dotnet test -c $(BuildConfiguration) --collect "XPlat Code Coverage" --no-build src\WinSW.Tests\WinSW.Tests.csproj displayName: Test - task: NuGetCommand@2 displayName: Pack inputs: command: pack packagesToPack: WinSW.nuspec versioningScheme: byEnvVar versionEnvVar: BuildVersion - script: dotnet tool restore displayName: Restore tools - script: dotnet tool run codecov -- -f "src\**\TestResults\*\coverage.cobertura.xml" --required displayName: Upload code coverage reports - publish: artifacts\publish\WinSW.NET2.exe artifact: WinSW.NET2.exe_$(BuildConfiguration) displayName: Publish .NET 2.0 - publish: artifacts\publish\WinSW.NET4.exe artifact: WinSW.NET4.exe_$(BuildConfiguration) displayName: Publish .NET 4.0 - publish: artifacts\publish\WinSW.NET461.exe artifact: WinSW.NET461.exe_$(BuildConfiguration) displayName: Publish .NET 4.6.1 - publish: artifacts\publish\WinSW-x64.exe artifact: WinSW-x64.exe_$(BuildConfiguration) displayName: Publish .NET Core x64 - publish: artifacts\publish\WinSW-x86.exe artifact: WinSW-x86.exe_$(BuildConfiguration) displayName: Publish .NET Core x86 - publish: $(Build.ArtifactStagingDirectory)\WinSW.$(BuildVersion).nupkg artifact: WinSW.nupkg_$(BuildConfiguration) displayName: Publish Nuget - publish: examples\sample-allOptions.xml artifact: sample-allOptions.xml displayName: Publish full sample condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release')) - publish: examples\sample-minimal.xml artifact: sample-minimal.xml displayName: Publish minimal sample condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))