I am trying to set up an Azure Pipeline to build and publish a multitarget nuget package. The solution has two project set up to create a nuget package for each project
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net461;netstandard2.1</TargetFrameworks>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<FileVersion>2.0.0.0</FileVersion>
<Version>2.0.0</Version>
<PackageId>TradingService.Messages</PackageId>
<Authors>Bankinvest</Authors>
<Product>TradingService.Messages</Product>
<Description>Package with trade messages.</Description>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
</Project>
When I run this command
MSBuild .\TradingService.Messages.sln -t:Rebuild -p:Configuration=Release
I now have two packages, one for each project.
In folder ".\tradingservice.messages\TradingService.Messages\bin\Release"
net46 (folder)
netstandard2.1 (folder)
TradingService.Messages.2.0.0.nupkg
Before I just copied it to a fileshare but now I want to publish it to Azure artifacts
How do I set up a build in Azure pipelines?
This is what I ended up with.
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
buildConfiguration: 'Release'
packageVersion: 'not-set'
steps:
- task: PowerShell@2
displayName: 'Create version tag'
inputs:
targetType: 'inline'
showWarnings: true
script: |
$tags = git tag --sort=-creatordate
if($tags.Count -gt 0) {
${env:MyCompany.Version} = "$($tags[0]).${env:BUILD_BUILDID}"
}
else {
${env:MyCompany.Version} = "0.0.0.${env:BUILD_BUILDID}"
}
echo "##vso[task.setvariable variable=packageVersion]${env:MyCompany.Version}"
- task: DotNetCoreCLI@2
displayName: 'dotnet build Messages'
inputs:
command: 'build'
arguments: '-c $(buildConfiguration)'
projects: 'MyProject/MyProject.csproj'
- task: DotNetCoreCLI@2
displayName: 'dotnet pack Messages'
inputs:
command: pack
arguments: '-c $(buildConfiguration) /p:VersionPrefix=$(packageVersion)'
packagesToPack: 'MyProject/MyProject.csproj'
nobuild: true
versioningScheme: off
- task: NuGetCommand@2
displayName: 'push messages'
inputs:
command: 'push'
feedsToUse: select
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
nuGetFeedType: 'internal'
publishVstsFeed: 'abd98fce-94bb-4652-82ec-91b7bbb3d2a3'
allowPackageConflicts: true
versioningScheme: off
- task: DotNetCoreCLI@2
displayName: 'dotnet build Rules'
inputs:
command: 'build'
arguments: '-c $(buildConfiguration)'
projects: 'TradingService.Rules/TradingService.Rules.csproj'
- task: DotNetCoreCLI@2
displayName: 'dotnet pack Rules'
inputs:
command: pack
arguments: '-c $(buildConfiguration) /p:VersionPrefix=$(packageVersion)'
packagesToPack: 'TradingService.Rules/TradingService.Rules.csproj'
nobuild: true
versioningScheme: off
- task: NuGetCommand@2
displayName: 'push rules'
inputs:
command: 'push'
feedsToUse: select
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
nuGetFeedType: 'internal'
publishVstsFeed: 'abd98fce-94bx-4652-82xc-91b7xx3d2a3'
allowPackageConflicts: true
versioningScheme: off
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With