@@ -320,118 +320,116 @@ extends:
320
320
addChangeLog : false
321
321
322
322
- 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
341
339
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"
355
361
}
356
362
}
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
363
367
}
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'])
432
399
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