Available variables:
https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml
Common used variables:
$(Build.BuildNumber) $(Build.SourcesDirectory) $(Build.StagingDirectory)
Making use of your own version number is in Azure Pipelines a terribly difficult task for some reason, a work-around below.
Define a ‘PackageVersion’ variable, with DayOfYear and Revision number (available only in BuildNumber/Name)
trigger: branches: include: - refs/heads/main batch: True name: $(BuildDefinitionName).$(Date:yy)$(DayOfYear).$(Rev:r).$(Build.SourceVersion) variables: PackageVersion: $[format('1.0.{0}.{1}', split(variables['Build.BuildNumber'], '.')[1], split(variables['Build.BuildNumber'], '.')[2])] jobs: - job: Phase_1 displayName: Agent job 1 pool: name: Web-Agents steps: - checkout: self clean: true - task: BatchScript@1 name: BatchScript_2 displayName: dotnet restore (restore Nu-Get packages) inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: restore -f --no-cache - task: BatchScript@1 name: BatchScript_3 displayName: dotnet build (release build) inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: build -c Release --no-restore /p:Version=$(PackageVersion) - task: BatchScript@1 name: BatchScript_4 displayName: dotnet test (Domain.Tests) continueOnError: True enabled: False inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: test -c Release Domain.Tests\Domain.Tests.csproj --no-build - task: BatchScript@1 name: BatchScript_5 displayName: dotnet publish (create published website) inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: publish -c Release WebApi\WebApi.csproj --no-build -o WebApi\published-app - task: BatchScript@1 name: BatchScript_6 displayName: dotnet publish (publish databaseupdater) inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: publish -c Release DatabaseUpdater\DatabaseUpdater.csproj --no-build -o DatabaseUpdater\published-app - task: BatchScript@1 name: publishing_WorkerService displayName: dotnet publish (create published WorkerService) inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: publish -c Release WorkerService\WorkerService.csproj --no-build -o WorkerService\published-app - task: BatchScript@1 name: BatchScript_8 displayName: dotnet pack (create WebApi Nu-Get package) inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: pack -c Release WebApi\WebApi.csproj --no-build /p:PackageVersion=$(PackageVersion) -o $(Build.StagingDirectory) - task: BatchScript@1 name: BatchScript_9 displayName: dotnet pack (create DatabaseUpdater Nu-Get package) inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: pack -c Release DatabaseUpdater\DatabaseUpdater.csproj --no-build /p:PackageVersion=$(PackageVersion) -o $(Build.StagingDirectory) - task: BatchScript@1 name: packing_WorkerService displayName: dotnet pack (create WorkerService Nu-Get package) inputs: filename: '"C:\Program Files\dotnet\dotnet.exe"' arguments: pack -c Release WorkerService\WorkerService.csproj --no-build /p:PackageVersion=$(PackageVersion) -o $(Build.StagingDirectory) - task: OctopusPush@5 name: OctopusPush_11 displayName: Push Packages to Octopus inputs: OctoConnectedServiceName: "Octopus Deploy" Space: "Spaces-1" Package: '$(Build.StagingDirectory)\*.nupkg' Replace: "false" - task: OctopusCreateRelease@6 displayName: Create Octopus Release inputs: OctoConnectedServiceName: 'Octopus Deploy' Space: 'Applicatiebeheer' Project: 'My API' ReleaseNumber: '$(PackageVersion)' GitRef: 'main'
896810cookie-checkAzure Pipeline Variables Package version