@@ -32,13 +32,10 @@ Task Publish Pack, {
3232 $state = Import-Clixml - Path " .\.trash\$Instance \state.clixml"
3333 $dockerImageVersionTag = $state.DockerImageVersionTag
3434 $dockerImageLatestTag = $state.DockerImageLatestTag
35- $dockerImageVersionArchiveName = $state.DockerImageVersionArchiveName
36- $dockerImageLatestArchiveName = $state.DockerImageLatestArchiveName
37- $dockerImageVersionArchive = Resolve-Path - Path " .\.trash\$Instance \artifacts\$dockerImageVersionArchiveName "
38- $dockerImageLatestArchive = Resolve-Path - Path " .\.trash\$Instance \artifacts\$dockerImageLatestArchiveName "
35+ $dockerImageMultiArchArchiveName = $state.DockerImageMultiArchArchiveName
36+ $dockerImageMultiArchArchive = Resolve-Path - Path " .\.trash\$Instance \artifacts\$dockerImageMultiArchArchiveName "
3937
40- Exec { docker image load -- input $dockerImageVersionArchive }
41- Exec { docker image load -- input $dockerImageLatestArchive }
38+ Exec { docker image load -- input $dockerImageMultiArchArchive }
4239
4340 if ($null -eq $env: DOCKER_ACCESS_TOKEN ) {
4441 Import-Module - Name Microsoft.PowerShell.SecretManagement
@@ -60,25 +57,22 @@ Task Publish Pack, {
6057 Exec { docker push $dockerImageLatestTag }
6158}
6259
63- # Synopsis: Pack NuGet package
60+ # Synopsis: Pack Docker image artifact
6461Task Pack Build, Test, Ward, {
6562 $state = Import-Clixml - Path " .\.trash\$Instance \state.clixml"
6663 $dockerImageName = $state.DockerImageName
6764 $nextVersion = $state.NextVersion
6865 $dockerFilePath = Resolve-Path - Path ' .\src\API.Web\Dockerfile'
66+ $buildArtifactsFolder = $state.BuildArtifactsFolder
6967
7068 $dockerImageVersionTag = " $ ( $dockerImageName ) :$nextVersion "
7169 $dockerImageLatestTag = " $ ( $dockerImageName ) :latest"
7270
73- $dockerImageVersionArchiveName = $state.DockerImageVersionArchiveName
74- $dockerImageLatestArchiveName = $state.DockerImageLatestArchiveName
75- $dockerImageVersionArchive = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath (" .\.trash\$Instance \artifacts\$dockerImageVersionArchiveName " )
76- $dockerImageLatestArchive = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath (" .\.trash\$Instance \artifacts\$dockerImageLatestArchiveName " )
71+ $dockerImageMultiArchArchiveName = $state.DockerImageMultiArchArchiveName
72+ $dockerImageMultiArchArchive = Join-Path - Path $buildArtifactsFolder - ChildPath $dockerImageMultiArchArchiveName
73+ Write-Warning - Message " Docker Image Multi-Arch Archive Path: $dockerImageMultiArchArchive "
7774
78- Exec { docker buildx build -- platform ' linux/amd64,linux/arm64' -- file $dockerFilePath -- tag $dockerImageVersionTag -- tag $dockerImageLatestTag . }
79-
80- Exec { docker image save -- output $dockerImageVersionArchive $dockerImageVersionTag }
81- Exec { docker image save -- output $dockerImageLatestArchive $dockerImageLatestTag }
75+ Exec { docker buildx build -- platform ' linux/amd64,linux/arm64' -- output " type=oci,dest=$dockerImageMultiArchArchive " -- file $dockerFilePath -- tag $dockerImageVersionTag -- tag $dockerImageLatestTag . }
8276
8377 $state.DockerImageVersionTag = $dockerImageVersionTag
8478 $state.DockerImageLatestTag = $dockerImageLatestTag
@@ -327,8 +321,7 @@ Task Init {
327321 DockerImageName = ' tiksn/fossa-api'
328322 DockerImageVersionTag = $null
329323 DockerImageLatestTag = $null
330- DockerImageVersionArchiveName = ' tiksn-fossa-api-version.tar'
331- DockerImageLatestArchiveName = ' tiksn-fossa-api-latest.tar'
324+ DockerImageMultiArchArchiveName = ' fossa-api-multiarch.tar'
332325 }
333326
334327 $state | Export-Clixml - Path " .\.trash\$Instance \state.clixml"
0 commit comments