@@ -320,118 +320,116 @@ extends:
320320 addChangeLog : false
321321
322322 - deployment : deploy_docker_image
323- displayName : ' Build and deploy docker images'
324- condition : or(contains(variables['build.sourceBranch'], 'refs/tags/v'), eq(variables['build.sourceBranch'], variables['PREVIEW_BRANCH']))
325- dependsOn : build
326- pool :
327- name : Azure-Pipelines-1ESPT-ExDShared
328- image : ubuntu-latest
329- os : linux
330- jobs :
331- - job : buildAndPush
332- steps :
333- - task : AzureCLI@2
334- displayName : ' Login to Azure Container Registry'
335- inputs :
336- azureSubscription : ' ACR Push Test'
337- scriptType : bash
338- scriptLocation : inlineScript
339- inlineScript : |
340- az acr login --name msgraphpperegistry
323+ strategy :
324+ runOnce :
325+ deploy :
326+ pool :
327+ name : Azure-Pipelines-1ESPT-ExDShared
328+ image : ubuntu-latest
329+ os : linux
330+ steps :
331+ - task : AzureCLI@2
332+ displayName : ' Login to Azure Container Registry'
333+ inputs :
334+ azureSubscription : ' ACR Push Test'
335+ scriptType : bash
336+ scriptLocation : inlineScript
337+ inlineScript : |
338+ az acr login --name msgraphpperegistry
341339
342- - powershell : |
343- $content = [XML](Get-Content ./Directory.Build.props)
344- Write-Host "XML loaded, finding version..."
345-
346- # Handle PropertyGroup as either a single element or array
347- $version = $null
348- if ($content.Project.PropertyGroup -is [array]) {
349- Write-Host "PropertyGroup is an array, checking each entry..."
350- foreach ($pg in $content.Project.PropertyGroup) {
351- if ($pg.Version) {
352- $version = $pg.Version.ToString().Trim()
353- Write-Host "Found version in PropertyGroup array: $version"
354- break
340+ - powershell : |
341+ $content = [XML](Get-Content ./Directory.Build.props)
342+ Write-Host "XML loaded, finding version..."
343+
344+ # Handle PropertyGroup as either a single element or array
345+ $version = $null
346+ if ($content.Project.PropertyGroup -is [array]) {
347+ Write-Host "PropertyGroup is an array, checking each entry..."
348+ foreach ($pg in $content.Project.PropertyGroup) {
349+ if ($pg.Version) {
350+ $version = $pg.Version.ToString().Trim()
351+ Write-Host "Found version in PropertyGroup array: $version"
352+ break
353+ }
354+ }
355+ } else {
356+ # Single PropertyGroup
357+ $version = $content.Project.PropertyGroup.Version
358+ if ($version) {
359+ $version = $version.ToString().Trim()
360+ Write-Host "Found version in PropertyGroup: $version"
355361 }
356362 }
357- } else {
358- # Single PropertyGroup
359- $version = $content.Project.PropertyGroup.Version
360- if ($version) {
361- $version = $version.ToString().Trim()
362- Write-Host "Found version in PropertyGroup: $version"
363+
364+ if (-not $version) {
365+ Write-Host "##vso[task.logissue type=error]Version not found in Directory.Build.props"
366+ exit 1
363367 }
364- }
365-
366- if (-not $version) {
367- Write-Host "##vso[task.logissue type=error]Version not found in Directory.Build.props"
368- exit 1
369- }
370-
371- Write-Host "Version found: $version"
372- Write-Host "##vso[task.setvariable variable=version;isoutput=true]$version"
373- Write-Host "##vso[task.setvariable variable=VERSION]$version"
374- displayName: 'Get version from csproj'
375- name: getversion
376-
377- - bash : |
378- # Debug output to verify version variable
379- echo "Version from previous step: $VERSION"
380- displayName: 'Verify version variable'
381-
382- - bash : |
383- echo "Build Number: $(Build.BuildNumber)"
384- # Extract the last 3 characters for the run number
385- runnumber=$(echo "$(Build.BuildNumber)" | grep -o '[0-9]\+$')
386- echo "Extracted Run Number: $runnumber"
387-
388- # If extraction fails, set a default
389- if [ -z "$runnumber" ]; then
390- echo "Extraction failed, using default value"
391- runnumber=$(date +"%S%N" | cut -c1-3)
392- echo "Generated fallback run number: $runnumber"
393- fi
394-
395- # Set the variable for later steps
396- echo "##vso[task.setvariable variable=RUNNUMBER]$runnumber"
397- echo "##vso[task.setvariable variable=RUNNUMBER;isOutput=true]$runnumber"
398- displayName: 'Get truncated run number'
399- name: getrunnumber
400- condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
401-
402- - bash : |
403- date=$(date +'%Y%m%d')
404- echo "Date value: $date"
405- echo "##vso[task.setvariable variable=BUILDDATE;isOutput=true]$date"
406- echo "##vso[task.setvariable variable=BUILDDATE]$date"
407- displayName: 'Get current date'
408- name: setdate
409- condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
410-
411- - bash : |
412- echo "Building Docker image..."
413- echo "Using build date: ${BUILDDATE}"
414- # Using quotes around tags to prevent flag interpretation
415- docker build \
416- -t "$(REGISTRY)/$(IMAGE_NAME):nightly" \
417- -t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}" \
418- "$(Build.SourcesDirectory)"
419-
420- echo "Pushing Docker image with nightly tag..."
421- docker push "$(REGISTRY)/$(IMAGE_NAME):nightly"
422- docker push "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}"
423- displayName: 'Build and Push Nightly Image'
424- condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
425-
426- - bash : |
427- echo "Building Docker image for release..."
428- docker build \
429- -t "$(REGISTRY)/$(IMAGE_NAME):latest" \
430- -t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}" \
431- "$(Build.SourcesDirectory)"
368+
369+ Write-Host "Version found: $version"
370+ Write-Host "##vso[task.setvariable variable=version;isoutput=true]$version"
371+ Write-Host "##vso[task.setvariable variable=VERSION]$version"
372+ displayName: 'Get version from csproj'
373+ name: getversion
374+
375+ - bash : |
376+ # Debug output to verify version variable
377+ echo "Version from previous step: $VERSION"
378+ displayName: 'Verify version variable'
379+
380+ - bash : |
381+ echo "Build Number: $(Build.BuildNumber)"
382+ # Extract the last 3 characters for the run number
383+ runnumber=$(echo "$(Build.BuildNumber)" | grep -o '[0-9]\+$')
384+ echo "Extracted Run Number: $runnumber"
385+
386+ # If extraction fails, set a default
387+ if [ -z "$runnumber" ]; then
388+ echo "Extraction failed, using default value"
389+ runnumber=$(date +"%S%N" | cut -c1-3)
390+ echo "Generated fallback run number: $runnumber"
391+ fi
392+
393+ # Set the variable for later steps
394+ echo "##vso[task.setvariable variable=RUNNUMBER]$runnumber"
395+ echo "##vso[task.setvariable variable=RUNNUMBER;isOutput=true]$runnumber"
396+ displayName: 'Get truncated run number'
397+ name: getrunnumber
398+ condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
432399
433- echo "Pushing Docker image with latest and version tags..."
434- docker push "$(REGISTRY)/$(IMAGE_NAME):latest"
435- docker push "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}"
436- displayName: 'Build and Push Release Image'
437- condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/v')
400+ - bash : |
401+ date=$(date +'%Y%m%d')
402+ echo "Date value: $date"
403+ echo "##vso[task.setvariable variable=BUILDDATE;isOutput=true]$date"
404+ echo "##vso[task.setvariable variable=BUILDDATE]$date"
405+ displayName: 'Get current date'
406+ name: setdate
407+ condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
408+
409+ - bash : |
410+ echo "Building Docker image..."
411+ echo "Using build date: ${BUILDDATE}"
412+ # Using quotes around tags to prevent flag interpretation
413+ docker build \
414+ -t "$(REGISTRY)/$(IMAGE_NAME):nightly" \
415+ -t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}" \
416+ "$(Build.SourcesDirectory)"
417+
418+ echo "Pushing Docker image with nightly tag..."
419+ docker push "$(REGISTRY)/$(IMAGE_NAME):nightly"
420+ docker push "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}"
421+ displayName: 'Build and Push Nightly Image'
422+ condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
423+
424+ - bash : |
425+ echo "Building Docker image for release..."
426+ docker build \
427+ -t "$(REGISTRY)/$(IMAGE_NAME):latest" \
428+ -t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}" \
429+ "$(Build.SourcesDirectory)"
430+
431+ echo "Pushing Docker image with latest and version tags..."
432+ docker push "$(REGISTRY)/$(IMAGE_NAME):latest"
433+ docker push "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}"
434+ displayName: 'Build and Push Release Image'
435+ condition: contains(variables['Build.SourceBranch'], 'refs/tags/v')
0 commit comments