@@ -32,13 +32,12 @@ 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+ $buildArtifactsFolder = $state.BuildArtifactsFolder
36+ $dockerImageMultiArchArchiveName = $state.DockerImageMultiArchArchiveName
37+ $dockerImageMultiArchArchive = Join -Path - Path $buildArtifactsFolder - ChildPath $dockerImageMultiArchArchiveName
38+ $dockerImageMultiArchArchive = Resolve-Path - Path $dockerImageMultiArchArchive
3939
40- Exec { docker image load -- input $dockerImageVersionArchive }
41- Exec { docker image load -- input $dockerImageLatestArchive }
40+ Exec { docker image load -- input $dockerImageMultiArchArchive }
4241
4342 if ($null -eq $env: DOCKER_ACCESS_TOKEN ) {
4443 Import-Module - Name Microsoft.PowerShell.SecretManagement
@@ -60,26 +59,21 @@ Task Publish Pack, {
6059 Exec { docker push $dockerImageLatestTag }
6160}
6261
63- # Synopsis: Pack NuGet package
62+ # Synopsis: Pack Docker image artifact
6463Task Pack Build, Test, Ward, {
6564 $state = Import-Clixml - Path " .\.trash\$Instance \state.clixml"
6665 $dockerImageName = $state.DockerImageName
6766 $nextVersion = $state.NextVersion
68- $linuxX64BuildArtifactsFolder = $state.LinuxX64BuildArtifactsFolder
69- $linuxArm64BuildArtifactsFolder = $state.LinuxArm64BuildArtifactsFolder
7067 $dockerFilePath = Resolve-Path - Path ' .\src\API.Web\Dockerfile'
68+ $buildArtifactsFolder = $state.BuildArtifactsFolder
7169
7270 $dockerImageVersionTag = " $ ( $dockerImageName ) :$nextVersion "
7371 $dockerImageLatestTag = " $ ( $dockerImageName ) :latest"
7472
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 " )
73+ $dockerImageMultiArchArchiveName = $state.DockerImageMultiArchArchiveName
74+ $dockerImageMultiArchArchive = Join-Path - Path $buildArtifactsFolder - ChildPath $dockerImageMultiArchArchiveName
7975
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 }
76+ Exec { docker buildx build -- platform ' linux/amd64,linux/arm64' -- output " type=oci,dest=$dockerImageMultiArchArchive " -- load -- file $dockerFilePath -- tag $dockerImageVersionTag -- tag $dockerImageLatestTag . }
8377
8478 $state.DockerImageVersionTag = $dockerImageVersionTag
8579 $state.DockerImageLatestTag = $dockerImageLatestTag
@@ -124,7 +118,7 @@ Task BuildWeb EstimateVersion, {
124118 $nextVersion = $state.NextVersion
125119
126120 Exec { dotnet build $project / v:m / p:Configuration= Release / p:version= $nextVersion / p:OutDir= $linuxX64BuildArtifactsFolder -- runtime linux- x64 }
127- Exec { dotnet build $project / v:m / p:Configuration= Release / p:version= $nextVersion / p:OutDir= $linuxArm64BuildArtifactsFolder -- runtime linux- x64 }
121+ Exec { dotnet build $project / v:m / p:Configuration= Release / p:version= $nextVersion / p:OutDir= $linuxArm64BuildArtifactsFolder -- runtime linux- arm64 }
128122 Exec { dotnet build $project / v:m / p:Configuration= Release / p:version= $nextVersion / p:OutDir= $winX64BuildArtifactsFolder -- runtime win- x64 }
129123}
130124
@@ -324,12 +318,11 @@ Task Init {
324318 ContractsArtifactsFolder = $contractsArtifactsFolder
325319 LinuxX64BuildArtifactsFolder = $linuxX64BuildArtifactsFolder
326320 LinuxArm64BuildArtifactsFolder = $linuxArm64BuildArtifactsFolder
327- WinX64BuildArtifactsFolder = $winX64BuildArtifactsFolder
321+ WinX64BuildArtifactsFolder = $winX64BuildArtifactsFolder
328322 DockerImageName = ' tiksn/fossa-api'
329323 DockerImageVersionTag = $null
330324 DockerImageLatestTag = $null
331- DockerImageVersionArchiveName = ' tiksn-fossa-api-version.tar'
332- DockerImageLatestArchiveName = ' tiksn-fossa-api-latest.tar'
325+ DockerImageMultiArchArchiveName = ' fossa-api-multiarch.tar'
333326 }
334327
335328 $state | Export-Clixml - Path " .\.trash\$Instance \state.clixml"
0 commit comments