diff --git a/build.sh b/build.sh index b072656330f..50bd9865604 100755 --- a/build.sh +++ b/build.sh @@ -10,7 +10,7 @@ set -e usage() { echo "Common settings:" -echo " --binaryLog Create MSBuild binary log (short: -bl)" + echo " --binaryLog Create MSBuild binary log (short: -bl)" echo " --configuration Build configuration: 'Debug' or 'Release' (short: -c)" echo " --rid, --target-rid Overrides the rid that is produced by the build. e.g. alpine.3.18-arm64, fedora.37-x64, freebsd.13-arm64, ubuntu.19.10-x64" echo " --os, --target-os Target operating system: e.g. linux, osx, freebsd. Note: this is the base OS name, not the distro" @@ -18,6 +18,8 @@ echo " --binaryLog Create MSBuild binary log (short: -b echo " --branding Specify versioning for shipping packages/assets. 'preview' will produce assets suffixed with '.final', 'rtm' will not contain a pre-release suffix. Default or unspecified will use VMR repo defaults." echo " --verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)" echo " --with-system-libs Use system versions of these libraries. Combine with a plus. 'all' will use all supported libraries. e.g. brotli+libunwind+rapidjson+zlib" + echo " --official-build-id Official build ID to use for the build. This is used to set the OfficialBuildId MSBuild property." + echo "" echo "Actions:" @@ -146,6 +148,15 @@ while [[ $# > 0 ]]; do properties+=( "/p:UseSystemLibs=$value" ) shift ;; + -official-build-id) + officialBuildId="$2" + if [[ ! "$officialBuildId" =~ ^[0-9]{8}\.[0-9]{1,3}$ ]]; then + echo "ERROR: Invalid official-build-id format. Expected format: YYYYYMMDD.X" + #exit 1 + fi + properties+=( "/p:OfficialBuildId=$officialBuildId" ) + shift + ;; -verbosity|-v) verbosity=$2 shift diff --git a/eng/build.ps1 b/eng/build.ps1 index ca7f968fcf5..3d4fcc1c056 100644 --- a/eng/build.ps1 +++ b/eng/build.ps1 @@ -9,6 +9,8 @@ Param( [string][Alias('v')]$verbosity = "minimal", [Parameter()][ValidateSet("preview", "rtm", "default")] [string]$branding = "default", + [Parameter()][ValidatePattern("^\d{8}\.\d{1,3}$")] + [string][Alias('obid')]$officialBuildId, # Actions [switch]$clean, @@ -31,13 +33,14 @@ Param( function Get-Usage() { Write-Host "Common settings:" - Write-Host " -binaryLog Output binary log (short: -bl)" - Write-Host " -configuration Build configuration: 'Debug' or 'Release' (short: -c). [Default: Release]" - Write-Host " -rid, -targetRid Overrides the rid that is produced by the build. e.g. win-arm64, win-x64" - Write-Host " -os, -targetOS Target operating system: e.g. windows." - Write-Host " -arch, -targetArch Target architecture: e.g. x64, x86, arm64, arm, riscv64" - Write-Host " -verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)" + Write-Host " -binaryLog Output binary log (short: -bl)" + Write-Host " -configuration Build configuration: 'Debug' or 'Release' (short: -c). [Default: Release]" + Write-Host " -rid, -targetRid Overrides the rid that is produced by the build. e.g. win-arm64, win-x64" + Write-Host " -os, -targetOS Target operating system: e.g. windows." + Write-Host " -arch, -targetArch Target architecture: e.g. x64, x86, arm64, arm, riscv64" + Write-Host " -verbosity Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)" Write-Host " -branding Specify versioning for shipping packages/assets. 'preview' will produce assets suffixed with '.final', 'rtm' will not contain a pre-release suffix. Default or unspecified will use VMR repo defaults." + Write-Host " -officialBuildId Official build ID to use for the build. This is used to set the OfficialBuildId MSBuild property." Write-Host "" Write-Host "Actions:" @@ -95,6 +98,7 @@ if ($branding) { "default" { $arguments += "" } } } +if ($officialBuildId) { $arguments += "/p:OfficialBuildId=$officialBuildId" } function Build { $toolsetBuildProj = InitializeToolset diff --git a/eng/pipelines/templates/jobs/vmr-build.yml b/eng/pipelines/templates/jobs/vmr-build.yml index 6066e4262bb..196cbb01b7b 100644 --- a/eng/pipelines/templates/jobs/vmr-build.yml +++ b/eng/pipelines/templates/jobs/vmr-build.yml @@ -232,6 +232,16 @@ jobs: - name: brandingArgument value: $(commandPrefix)branding $(brandingType) + - ${{ if and(eq(variables['System.TeamProject'], 'internal'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - name: officialBuildArgument + ${{ if eq(parameters.targetOS, 'windows') }}: + value: $(commandPrefix)officialBuildId $(Build.BuildNumber) + ${{ else }}: + value: $(commandPrefix)official-build-id $(Build.BuildNumber) + - ${{ else }}: + - name: officialBuildArgument + value: '' + - name: useSystemLibrariesArgument ${{ if eq(parameters.useSystemLibraries, 'true') }}: value: $(commandPrefix)with-system-libs all @@ -239,7 +249,7 @@ jobs: value: '' - name: baseArguments - value: $(commandPrefix)ci $(cleanArgument) $(commandPrefix)prepareMachine -c ${{ parameters.configuration }} $(brandingArgument) $(useSystemLibrariesArgument) + value: $(commandPrefix)ci $(cleanArgument) $(commandPrefix)prepareMachine -c ${{ parameters.configuration }} $(brandingArgument) $(useSystemLibrariesArgument) $(officialBuildArgument) - name: baseProperties value: $(officialBuildProperties) /p:VerticalName=$(Agent.JobName) diff --git a/eng/pipelines/templates/variables/vmr-build.yml b/eng/pipelines/templates/variables/vmr-build.yml index 9a5a2921f99..db723d07a2f 100644 --- a/eng/pipelines/templates/variables/vmr-build.yml +++ b/eng/pipelines/templates/variables/vmr-build.yml @@ -73,7 +73,7 @@ variables: - ${{ if eq(variables['isOfficialBuild'], true) }}: - name: officialBuildProperties - value: '/p:OfficialBuildId=$(Build.BuildNumber) $(officialBuilderProperty)' + value: '$(officialBuilderProperty)' - ${{ else }}: - name: officialBuildProperties value: '' pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy