Skip to content

Commit d3d8ad2

Browse files
author
Evans Aboge (from Dev Box)
committed
Use CopyTask
1 parent 8c1f4ae commit d3d8ad2

File tree

1 file changed

+40
-5
lines changed

1 file changed

+40
-5
lines changed

.azure-pipelines/ci-build.yml

Lines changed: 40 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ trigger:
77
include:
88
- main
99
- support/v1
10-
- task/move-to-deploy-stage
1110
tags:
1211
include:
1312
- 'v*'
@@ -16,15 +15,14 @@ pr:
1615
include:
1716
- main
1817
- support/v1
19-
- task/move-to-deploy-stage
2018

2119
variables:
2220
buildPlatform: 'Any CPU'
2321
buildConfiguration: 'Release'
2422
ProductBinPath: '$(Build.SourcesDirectory)\src\Microsoft.OpenApi\bin\$(BuildConfiguration)'
2523
REGISTRY: 'msgraphpperegistry.azurecr.io'
2624
IMAGE_NAME: 'public/openapi/hidi'
27-
PREVIEW_BRANCH: 'refs/heads/task/move-to-deploy-stage'
25+
PREVIEW_BRANCH: 'refs/heads/main'
2826

2927
resources:
3028
repositories:
@@ -55,6 +53,14 @@ extends:
5553
displayName: 'Publish Artifact: RepoFiles'
5654
artifactName: RepoFiles
5755
targetPath: '$(Build.ArtifactStagingDirectory)/RepoFiles'
56+
- output: pipelineArtifact
57+
displayName: 'Publish Artifact: DockerImage'
58+
artifactName: DockerImage
59+
targetPath: '$(Build.ArtifactStagingDirectory)/DockerImage'
60+
- output: pipelineArtifact
61+
displayName: 'Publish Artifact: ImageConfig'
62+
artifactName: ImageConfig
63+
targetPath: '$(Build.ArtifactStagingDirectory)/ImageConfig'
5864
steps:
5965
- task: UseDotNet@2
6066
displayName: 'Use .NET 6'
@@ -230,21 +236,35 @@ extends:
230236
# Extract run number
231237
runNumber=$(echo "$(Build.BuildNumber)" | grep -o '[0-9]\+$' || date +"%S%N" | cut -c1-3)
232238
echo "##vso[task.setvariable variable=RUNNUMBER]$runNumber"
239+
240+
# Create directories for Docker image artifacts and config
241+
mkdir -p "$(Build.ArtifactStagingDirectory)/DockerImage"
242+
mkdir -p "$(Build.ArtifactStagingDirectory)/ImageConfig"
243+
244+
# Save configuration for deploy stage
245+
echo "$versionInfo" > "$(Build.ArtifactStagingDirectory)/ImageConfig/version.txt"
246+
echo "$buildDate" > "$(Build.ArtifactStagingDirectory)/ImageConfig/builddate.txt"
247+
echo "$runNumber" > "$(Build.ArtifactStagingDirectory)/ImageConfig/runnumber.txt"
248+
echo "$(Build.SourceBranch)" > "$(Build.ArtifactStagingDirectory)/ImageConfig/sourcebranch.txt"
233249
displayName: 'Extract version and build info'
234250
235251
- bash: |
236252
# Create image tag based on branch/tag
237253
if [[ "$(Build.SourceBranch)" == "$(PREVIEW_BRANCH)" ]]; then
238254
# For main branch
239255
IMAGE_TAGS="--tag $(REGISTRY)/$(IMAGE_NAME):nightly --tag $(REGISTRY)/$(IMAGE_NAME):$(VERSION).$(BUILDDATE)$(RUNNUMBER)"
256+
echo "nightly" > "$(Build.ArtifactStagingDirectory)/ImageConfig/imagetype.txt"
240257
elif [[ "$(Build.SourceBranch)" == refs/tags/v* ]]; then
241258
# For release tags
242259
IMAGE_TAGS="--tag $(REGISTRY)/$(IMAGE_NAME):latest --tag $(REGISTRY)/$(IMAGE_NAME):$(VERSION)"
260+
echo "release" > "$(Build.ArtifactStagingDirectory)/ImageConfig/imagetype.txt"
243261
else
244262
# For other branches/PRs
245263
IMAGE_TAGS="--tag $(REGISTRY)/$(IMAGE_NAME):$(VERSION).$(BUILDDATE)$(RUNNUMBER)"
264+
echo "branch" > "$(Build.ArtifactStagingDirectory)/ImageConfig/imagetype.txt"
246265
fi
247266
267+
echo "$IMAGE_TAGS" > "$(Build.ArtifactStagingDirectory)/ImageConfig/imagetags.txt"
248268
echo "##vso[task.setvariable variable=IMAGE_TAGS]$IMAGE_TAGS"
249269
displayName: 'Set Docker image tags'
250270
@@ -261,11 +281,26 @@ extends:
261281
# Build image with BuildX but don't push yet - save to local tar file
262282
docker buildx build \
263283
--platform linux/amd64,linux/arm64/v8 \
264-
--output "type=docker,dest=$(Build.ArtifactStagingDirectory)/docker-image.tar" \
284+
--output "type=docker,dest=$(Build.ArtifactStagingDirectory)/DockerImage/docker-image.tar" \
265285
$(IMAGE_TAGS) \
266286
$(Build.SourcesDirectory)
267287
displayName: 'Build Docker image and save to artifact'
268288
289+
# Copy Docker image to staging directory using CopyFiles
290+
- task: CopyFiles@2
291+
displayName: 'Prepare Docker image for upload'
292+
inputs:
293+
sourceFolder: $(Build.ArtifactStagingDirectory)/DockerImage
294+
contents: '**/*'
295+
targetFolder: $(Build.ArtifactStagingDirectory)/DockerImage
296+
297+
# Copy Docker image config to staging directory
298+
- task: CopyFiles@2
299+
displayName: 'Prepare Docker image config for upload'
300+
inputs:
301+
sourceFolder: $(Build.ArtifactStagingDirectory)/ImageConfig
302+
contents: '**/*'
303+
targetFolder: $(Build.ArtifactStagingDirectory)/ImageConfig
269304
- task: PublishPipelineArtifact@1
270305
displayName: 'Publish Docker Image Artifact'
271306
inputs:
@@ -425,7 +460,7 @@ extends:
425460
- task: AzureCLI@2
426461
displayName: 'Login to Azure Container Registry'
427462
inputs:
428-
azureSubscription: 'ACR Images Push Service Connection'
463+
azureSubscription: 'ACR Push Test'
429464
scriptType: bash
430465
scriptLocation: inlineScript
431466
inlineScript: |

0 commit comments

Comments
 (0)