Skip to content

Commit 823a5df

Browse files
committed
Update script
1 parent eaef7af commit 823a5df

File tree

1 file changed

+13
-20
lines changed

1 file changed

+13
-20
lines changed

.build.ps1

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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
6463
Task 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

Comments
 (0)