@@ -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,26 +57,21 @@ 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
68- $linuxX64BuildArtifactsFolder = $state.LinuxX64BuildArtifactsFolder
69- $linuxArm64BuildArtifactsFolder = $state.LinuxArm64BuildArtifactsFolder
7065 $dockerFilePath = Resolve-Path - Path ' .\src\API.Web\Dockerfile'
66+ $buildArtifactsFolder = $state.BuildArtifactsFolder
7167
7268 $dockerImageVersionTag = " $ ( $dockerImageName ) :$nextVersion "
7369 $dockerImageLatestTag = " $ ( $dockerImageName ) :latest"
7470
75- $dockerImageVersionArchiveName = $state.DockerImageVersionArchiveName
76- $dockerImageLatestArchiveName = $state.DockerImageLatestArchiveName
77- $dockerImageVersionArchive = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath (" .\.trash\$Instance \artifacts\$dockerImageVersionArchiveName " )
78- $dockerImageLatestArchive = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath (" .\.trash\$Instance \artifacts\$dockerImageLatestArchiveName " )
71+ $dockerImageMultiArchArchiveName = $state.DockerImageMultiArchArchiveName
72+ $dockerImageMultiArchArchive = Join-Path - Path $buildArtifactsFolder - ChildPath $dockerImageMultiArchArchiveName
7973
80- Exec { docker buildx build -- file $dockerFilePath -- tag $dockerImageVersionTag -- tag $dockerImageLatestTag $linuxX64BuildArtifactsFolder }
81- Exec { docker image save -- output $dockerImageVersionArchive $dockerImageVersionTag }
82- Exec { docker image save -- output $dockerImageLatestArchive $dockerImageLatestTag }
74+ Exec { docker buildx build -- platform ' linux/amd64,linux/arm64' -- output " type=oci,dest=$dockerImageMultiArchArchive " -- file $dockerFilePath -- tag $dockerImageVersionTag -- tag $dockerImageLatestTag . }
8375
8476 $state.DockerImageVersionTag = $dockerImageVersionTag
8577 $state.DockerImageLatestTag = $dockerImageLatestTag
@@ -324,12 +316,11 @@ Task Init {
324316 ContractsArtifactsFolder = $contractsArtifactsFolder
325317 LinuxX64BuildArtifactsFolder = $linuxX64BuildArtifactsFolder
326318 LinuxArm64BuildArtifactsFolder = $linuxArm64BuildArtifactsFolder
327- WinX64BuildArtifactsFolder = $winX64BuildArtifactsFolder
319+ WinX64BuildArtifactsFolder = $winX64BuildArtifactsFolder
328320 DockerImageName = ' tiksn/fossa-api'
329321 DockerImageVersionTag = $null
330322 DockerImageLatestTag = $null
331- DockerImageVersionArchiveName = ' tiksn-fossa-api-version.tar'
332- DockerImageLatestArchiveName = ' tiksn-fossa-api-latest.tar'
323+ DockerImageMultiArchArchiveName = ' fossa-api-multiarch.tar'
333324 }
334325
335326 $state | Export-Clixml - Path " .\.trash\$Instance \state.clixml"
0 commit comments