{"id":8968,"date":"2024-10-21T10:33:48","date_gmt":"2024-10-21T09:33:48","guid":{"rendered":"https:\/\/solidt.eu\/site\/?p=8968"},"modified":"2024-10-21T11:28:47","modified_gmt":"2024-10-21T10:28:47","slug":"azure-pipeline-variables-package-version","status":"publish","type":"post","link":"https:\/\/solidt.eu\/site\/azure-pipeline-variables-package-version\/","title":{"rendered":"Azure Pipeline Variables Package version"},"content":{"rendered":"\n<p>Available variables:<\/p>\n\n\n\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/pipelines\/build\/variables?view=azure-devops&amp;tabs=yaml\">https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/pipelines\/build\/variables?view=azure-devops&amp;tabs=yaml<\/a><\/p>\n\n\n\n<p>Common used variables:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$(Build.BuildNumber)\n$(Build.SourcesDirectory)\n$(Build.StagingDirectory)<\/pre>\n\n\n\n<p>Making use of your own version number is in Azure Pipelines a terribly difficult task for some reason,  a work-around below.<br><br>Define a &#8216;PackageVersion&#8217; variable, with DayOfYear and Revision number (available only in BuildNumber\/Name)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">trigger:\n  branches:\n    include:\n      - refs\/heads\/main\n  batch: True\nname: $(BuildDefinitionName).$(Date:yy)$(DayOfYear).$(Rev:r).$(Build.SourceVersion)\nvariables:      \n  PackageVersion:  $[format('1.0.{0}.{1}', split(variables['Build.BuildNumber'], '.')[1], split(variables['Build.BuildNumber'], '.')[2])]\njobs:\n  - job: Phase_1\n    displayName: Agent job 1\n    pool:\n      name: Web-Agents\n    steps:\n      - checkout: self\n        clean: true\n      - task: BatchScript@1\n        name: BatchScript_2\n        displayName: dotnet restore (restore Nu-Get packages)\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: restore -f --no-cache\n      - task: BatchScript@1\n        name: BatchScript_3\n        displayName: dotnet build (release build)\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: build -c Release --no-restore  \/p:Version=$(PackageVersion)\n      - task: BatchScript@1\n        name: BatchScript_4\n        displayName: dotnet test (Domain.Tests)\n        continueOnError: True\n        enabled: False\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: test -c Release Domain.Tests\\Domain.Tests.csproj --no-build\n      - task: BatchScript@1\n        name: BatchScript_5\n        displayName: dotnet publish (create published website)\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: publish -c Release  WebApi\\WebApi.csproj --no-build -o WebApi\\published-app\n      - task: BatchScript@1\n        name: BatchScript_6\n        displayName: dotnet publish (publish databaseupdater)\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: publish -c Release  DatabaseUpdater\\DatabaseUpdater.csproj --no-build -o DatabaseUpdater\\published-app\n      - task: BatchScript@1\n        name: publishing_WorkerService\n        displayName: dotnet publish (create published WorkerService)\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: publish -c Release  WorkerService\\WorkerService.csproj --no-build -o WorkerService\\published-app\n      - task: BatchScript@1\n        name: BatchScript_8\n        displayName: dotnet pack (create WebApi Nu-Get package)\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: pack -c Release  WebApi\\WebApi.csproj --no-build \/p:PackageVersion=$(PackageVersion) -o $(Build.StagingDirectory)\n      - task: BatchScript@1\n        name: BatchScript_9\n        displayName: dotnet pack (create DatabaseUpdater Nu-Get package)\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: pack -c Release  DatabaseUpdater\\DatabaseUpdater.csproj --no-build \/p:PackageVersion=$(PackageVersion) -o $(Build.StagingDirectory)\n      - task: BatchScript@1\n        name: packing_WorkerService\n        displayName: dotnet pack (create WorkerService Nu-Get package)\n        inputs:\n          filename: '\"C:\\Program Files\\dotnet\\dotnet.exe\"'\n          arguments: pack -c Release  WorkerService\\WorkerService.csproj --no-build \/p:PackageVersion=$(PackageVersion) -o $(Build.StagingDirectory)         \n      - task: OctopusPush@5\n        name: OctopusPush_11\n        displayName: Push Packages to Octopus\n        inputs:\n          OctoConnectedServiceName: \"Octopus Deploy\"\n          Space: \"Spaces-1\"\n          Package: '$(Build.StagingDirectory)\\*.nupkg'\n          Replace: \"false\"\n      - task: OctopusCreateRelease@6\n        displayName: Create Octopus Release\n        inputs:\n          OctoConnectedServiceName: 'Octopus Deploy'\n          Space: 'Applicatiebeheer'\n          Project: 'My API'\n          ReleaseNumber: '$(PackageVersion)'\n          GitRef: 'main'\n        \n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Available variables: https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/pipelines\/build\/variables?view=azure-devops&amp;tabs=yaml Common used variables: Making use of your own version number is in Azure Pipelines a terribly difficult task for some reason, a work-around below. Define a &#8216;PackageVersion&#8217; variable, with DayOfYear and Revision number (available only in BuildNumber\/Name)<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8968","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/8968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/comments?post=8968"}],"version-history":[{"count":3,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/8968\/revisions"}],"predecessor-version":[{"id":8973,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/8968\/revisions\/8973"}],"wp:attachment":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/media?parent=8968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/categories?post=8968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/tags?post=8968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}