mirror of
https://github.com/gregtwallace/apc-p15-tool.git
synced 2025-07-25 08:02:58 +00:00
54 lines
1.5 KiB
PowerShell
54 lines
1.5 KiB
PowerShell
# base build path, relative to script
|
|
$outRelativeDir = "\_out"
|
|
|
|
###
|
|
|
|
# Script dir is root
|
|
$scriptDir = Get-Location
|
|
$outBaseDir = Join-Path -Path $scriptDir -ChildPath $outRelativeDir
|
|
$outReleaseDir = Join-Path -Path $outBaseDir -ChildPath "\_release"
|
|
|
|
# ensure release path exists
|
|
New-Item -ItemType Directory -Force -Path $outReleaseDir | Out-Null
|
|
|
|
# get version number (tag)
|
|
$gitTag = $(git describe --tags --abbrev=0)
|
|
|
|
# GOOS_GOARCH to build for
|
|
$targets = @(
|
|
"windows_amd64",
|
|
"linux_amd64",
|
|
"linux_arm64",
|
|
"darwin_amd64",
|
|
"darwin_arm64"
|
|
)
|
|
|
|
# loop through and build all targets
|
|
foreach ($target in $targets) {
|
|
# environment vars
|
|
$split = $target.split("_")
|
|
$env:GOOS = $split[0]
|
|
$env:GOARCH = $split[1]
|
|
$env:CGO_ENABLED = 0
|
|
|
|
# send build product to GOOS_GOARCH subfolders
|
|
$targetOutDir = Join-Path -Path $outBaseDir -ChildPath "$($env:GOOS)_$($env:GOARCH)"
|
|
|
|
# special case to add file extensions
|
|
$extension = ""
|
|
if ($env:GOOS -eq "windows") {
|
|
$extension = ".exe"
|
|
}
|
|
|
|
# build binary and install only binary
|
|
go build -o "$($targetOutDir)\apc-p15-tool$($extension)" .\cmd\tool
|
|
go build -o "$($targetOutDir)\apc-p15-install$($extension)" .\cmd\install_only
|
|
|
|
# copy other important files for release
|
|
Copy-Item .\README.md $targetOutDir
|
|
Copy-Item .\CHANGELOG.md $targetOutDir
|
|
Copy-Item .\LICENSE.md $targetOutDir
|
|
|
|
# zip and drop into release folder
|
|
Compress-Archive -Path "$($targetOutDir)\*" -CompressionLevel Optimal -DestinationPath "$($outReleaseDir)\apc-p15-tool-$($gitTag)_$($target).zip" -Force
|
|
}
|