From 5ad655b844bb97ed6e33fac1bcc3cf1edcd2e9b2 Mon Sep 17 00:00:00 2001 From: Tigran TIKSN Torosyan Date: Sun, 29 Dec 2024 22:45:01 -0500 Subject: [PATCH 1/2] Linux Build for X64 and ARM64 --- .build.ps1 | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/.build.ps1 b/.build.ps1 index 8c46a4c7..c7603724 100644 --- a/.build.ps1 +++ b/.build.ps1 @@ -65,7 +65,8 @@ Task Pack Build, Test, Ward, { $state = Import-Clixml -Path ".\.trash\$Instance\state.clixml" $dockerImageName = $state.DockerImageName $nextVersion = $state.NextVersion - $linuxBuildArtifactsFolder = $state.LinuxBuildArtifactsFolder + $linuxX64BuildArtifactsFolder = $state.LinuxX64BuildArtifactsFolder + $linuxArm64BuildArtifactsFolder = $state.LinuxArm64BuildArtifactsFolder $dockerFilePath = Resolve-Path -Path '.\src\API.Web\Dockerfile' $dockerImageVersionTag = "$($dockerImageName):$nextVersion" @@ -76,7 +77,7 @@ Task Pack Build, Test, Ward, { $dockerImageVersionArchive = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(".\.trash\$Instance\artifacts\$dockerImageVersionArchiveName") $dockerImageLatestArchive = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(".\.trash\$Instance\artifacts\$dockerImageLatestArchiveName") - Exec { docker buildx build --file $dockerFilePath --tag $dockerImageVersionTag --tag $dockerImageLatestTag $linuxBuildArtifactsFolder } + Exec { docker buildx build --file $dockerFilePath --tag $dockerImageVersionTag --tag $dockerImageLatestTag $linuxX64BuildArtifactsFolder } Exec { docker image save --output $dockerImageVersionArchive $dockerImageVersionTag } Exec { docker image save --output $dockerImageLatestArchive $dockerImageLatestTag } @@ -116,12 +117,14 @@ Task Build Format, BuildWeb, { # Synopsis: Build Web Task BuildWeb EstimateVersion, { $state = Import-Clixml -Path ".\.trash\$Instance\state.clixml" - $linuxBuildArtifactsFolder = $state.LinuxBuildArtifactsFolder + $linuxX64BuildArtifactsFolder = $state.LinuxX64BuildArtifactsFolder + $linuxArm64BuildArtifactsFolder = $state.LinuxArm64BuildArtifactsFolder $winBuildArtifactsFolder = $state.WinBuildArtifactsFolder $project = Resolve-Path -Path 'src/API.Web/API.Web.csproj' $nextVersion = $state.NextVersion - Exec { dotnet build $project /v:m /p:Configuration=Release /p:version=$nextVersion /p:OutDir=$linuxBuildArtifactsFolder --runtime linux-x64 } + Exec { dotnet build $project /v:m /p:Configuration=Release /p:version=$nextVersion /p:OutDir=$linuxX64BuildArtifactsFolder --runtime linux-x64 } + Exec { dotnet build $project /v:m /p:Configuration=Release /p:version=$nextVersion /p:OutDir=$linuxArm64BuildArtifactsFolder --runtime linux-x64 } Exec { dotnet build $project /v:m /p:Configuration=Release /p:version=$nextVersion /p:OutDir=$winBuildArtifactsFolder --runtime win-x64 } } @@ -319,24 +322,28 @@ Task Init { $contractsArtifactsFolder = Join-Path -Path $buildArtifactsFolder -ChildPath 'contracts' New-Item -Path $contractsArtifactsFolder -ItemType Directory | Out-Null - $linuxBuildArtifactsFolder = Join-Path -Path $buildArtifactsFolder -ChildPath 'linux' - New-Item -Path $linuxBuildArtifactsFolder -ItemType Directory | Out-Null + $linuxX64BuildArtifactsFolder = Join-Path -Path $buildArtifactsFolder -ChildPath 'linux-x64' + New-Item -Path $linuxX64BuildArtifactsFolder -ItemType Directory | Out-Null + + $linuxArm64BuildArtifactsFolder = Join-Path -Path $buildArtifactsFolder -ChildPath 'linux-arm64' + New-Item -Path $linuxArm64BuildArtifactsFolder -ItemType Directory | Out-Null $winBuildArtifactsFolder = Join-Path -Path $buildArtifactsFolder -ChildPath 'win' New-Item -Path $winBuildArtifactsFolder -ItemType Directory | Out-Null $state = [PSCustomObject]@{ - NextVersion = $null - TrashFolder = $trashFolder - BuildArtifactsFolder = $buildArtifactsFolder - ContractsArtifactsFolder = $contractsArtifactsFolder - LinuxBuildArtifactsFolder = $linuxBuildArtifactsFolder - WinBuildArtifactsFolder = $winBuildArtifactsFolder - DockerImageName = 'tiksn/fossa-api' - DockerImageVersionTag = $null - DockerImageLatestTag = $null - DockerImageVersionArchiveName = 'tiksn-fossa-api-version.tar' - DockerImageLatestArchiveName = 'tiksn-fossa-api-latest.tar' + NextVersion = $null + TrashFolder = $trashFolder + BuildArtifactsFolder = $buildArtifactsFolder + ContractsArtifactsFolder = $contractsArtifactsFolder + LinuxX64BuildArtifactsFolder = $linuxX64BuildArtifactsFolder + LinuxArm64BuildArtifactsFolder = $linuxArm64BuildArtifactsFolder + WinBuildArtifactsFolder = $winBuildArtifactsFolder + DockerImageName = 'tiksn/fossa-api' + DockerImageVersionTag = $null + DockerImageLatestTag = $null + DockerImageVersionArchiveName = 'tiksn-fossa-api-version.tar' + DockerImageLatestArchiveName = 'tiksn-fossa-api-latest.tar' } $state | Export-Clixml -Path ".\.trash\$Instance\state.clixml" From 8d35334bcec91779a7ad98018861ab76fcfe3391 Mon Sep 17 00:00:00 2001 From: Tigran TIKSN Torosyan Date: Sun, 29 Dec 2024 22:46:44 -0500 Subject: [PATCH 2/2] Windows Build for X64 --- .build.ps1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.build.ps1 b/.build.ps1 index c7603724..10b5e7e8 100644 --- a/.build.ps1 +++ b/.build.ps1 @@ -119,13 +119,13 @@ Task BuildWeb EstimateVersion, { $state = Import-Clixml -Path ".\.trash\$Instance\state.clixml" $linuxX64BuildArtifactsFolder = $state.LinuxX64BuildArtifactsFolder $linuxArm64BuildArtifactsFolder = $state.LinuxArm64BuildArtifactsFolder - $winBuildArtifactsFolder = $state.WinBuildArtifactsFolder + $winX64BuildArtifactsFolder = $state.WinX64BuildArtifactsFolder $project = Resolve-Path -Path 'src/API.Web/API.Web.csproj' $nextVersion = $state.NextVersion Exec { dotnet build $project /v:m /p:Configuration=Release /p:version=$nextVersion /p:OutDir=$linuxX64BuildArtifactsFolder --runtime linux-x64 } Exec { dotnet build $project /v:m /p:Configuration=Release /p:version=$nextVersion /p:OutDir=$linuxArm64BuildArtifactsFolder --runtime linux-x64 } - Exec { dotnet build $project /v:m /p:Configuration=Release /p:version=$nextVersion /p:OutDir=$winBuildArtifactsFolder --runtime win-x64 } + Exec { dotnet build $project /v:m /p:Configuration=Release /p:version=$nextVersion /p:OutDir=$winX64BuildArtifactsFolder --runtime win-x64 } } # Synopsis: Estimate Next Version @@ -328,8 +328,8 @@ Task Init { $linuxArm64BuildArtifactsFolder = Join-Path -Path $buildArtifactsFolder -ChildPath 'linux-arm64' New-Item -Path $linuxArm64BuildArtifactsFolder -ItemType Directory | Out-Null - $winBuildArtifactsFolder = Join-Path -Path $buildArtifactsFolder -ChildPath 'win' - New-Item -Path $winBuildArtifactsFolder -ItemType Directory | Out-Null + $winX64BuildArtifactsFolder = Join-Path -Path $buildArtifactsFolder -ChildPath 'win-x64' + New-Item -Path $winX64BuildArtifactsFolder -ItemType Directory | Out-Null $state = [PSCustomObject]@{ NextVersion = $null @@ -338,7 +338,7 @@ Task Init { ContractsArtifactsFolder = $contractsArtifactsFolder LinuxX64BuildArtifactsFolder = $linuxX64BuildArtifactsFolder LinuxArm64BuildArtifactsFolder = $linuxArm64BuildArtifactsFolder - WinBuildArtifactsFolder = $winBuildArtifactsFolder + WinX64BuildArtifactsFolder = $winX64BuildArtifactsFolder DockerImageName = 'tiksn/fossa-api' DockerImageVersionTag = $null DockerImageLatestTag = $null