nd002test/on-premise/main/rancher_v2.9.1/source/rancher-2.9.1/scripts/windows/package.ps1

59 lines
1.5 KiB
PowerShell

$ErrorActionPreference = 'Stop'
Import-Module -WarningAction Ignore -Name "$PSScriptRoot\utils.psm1"
Invoke-Script -File "$PSScriptRoot\version.ps1"
$DIR_PATH = Split-Path -Parent $MyInvocation.MyCommand.Definition
$SRC_PATH = (Resolve-Path "$DIR_PATH\..\..").Path
cd $SRC_PATH\package\windows
$TAG = $env:TAG
if (-not $TAG) {
$TAG = ('{0}{1}' -f $env:VERSION, $env:SUFFIX)
}
$REPO = $env:REPO
if (-not $REPO) {
$REPO = "rancher"
}
if ($TAG | Select-String -Pattern 'dirty') {
$TAG = "dev"
}
if ($env:DRONE_TAG) {
$TAG = $env:DRONE_TAG
}
$null = Copy-Item -Force -Path "$SRC_PATH\bin\agent.exe" -Destination .
# Get release id as image tag suffix
$HOST_RELEASE_ID = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\' -ErrorAction Ignore).ReleaseId
$RELEASE_ID = $env:RELEASE_ID
if (-not $RELEASE_ID) {
$RELEASE_ID = $HOST_RELEASE_ID
}
$AGENT_IMAGE = ('{0}/rancher-agent:{1}-windows-{2}' -f $REPO, $TAG, $RELEASE_ID)
$ARCH = $env:ARCH
if ($RELEASE_ID -eq $HOST_RELEASE_ID) {
docker build `
--build-arg SERVERCORE_VERSION=$RELEASE_ID `
--build-arg ARCH=$ARCH `
--build-arg VERSION=$TAG `
-t $AGENT_IMAGE `
-f Dockerfile.agent .
} else {
docker build `
--isolation hyperv `
--build-arg SERVERCORE_VERSION=$RELEASE_ID `
--build-arg ARCH=$ARCH `
--build-arg VERSION=$TAG `
-t $AGENT_IMAGE `
-f Dockerfile.agent .
}
# $AGENT_IMAGE | Out-File -Encoding ascii -Force -FilePath "$SRC_PATH\dist\images"
Log-Info "Built $AGENT_IMAGE`n"