67 lines
2.2 KiB
PowerShell
67 lines
2.2 KiB
PowerShell
# this script is used by the continuous integration server to
|
|
# build and publish the docker image for a tagged revsision.
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$env:GOOS="windows"
|
|
$env:GOARCH="amd64"
|
|
$env:CGO_ENABLED="0"
|
|
|
|
if (-not (Test-Path env:VERSION)) {
|
|
$env:VERSION="1809"
|
|
}
|
|
|
|
if (-not (Test-Path env:DRONE_SEMVER_SHORT)) {
|
|
echo "missing semver"
|
|
exit 1
|
|
}
|
|
|
|
if (-not (Test-Path env:REGISTRY)) {
|
|
$env:REGISTRY="docker"
|
|
}
|
|
|
|
# define the image tags
|
|
$env:IMAGE_PATCH="plugins/${env:REGISTRY}:${env:DRONE_SEMVER_SHORT}-windows-${env:VERSION}-amd64"
|
|
$env:IMAGE_MAJOR="plugins/${env:REGISTRY}:${env:DRONE_SEMVER_MAJOR}-windows-${env:VERSION}-amd64"
|
|
$env:IMAGE_MINOR="plugins/${env:REGISTRY}:${env:DRONE_SEMVER_MAJOR}.${env:DRONE_SEMVER_MINOR}-windows-${env:VERSION}-amd64"
|
|
|
|
echo "build environment:"
|
|
echo $env:GOOS
|
|
echo $env:GOARCH
|
|
echo $env:VERSION
|
|
|
|
# build the binary
|
|
Write-Host "+ go build -o release/windows/amd64/drone-${env:REGISTRY}.exe ./cmd/drone-${env:REGISTRY}"
|
|
go build -o release/windows/amd64/drone-${env:REGISTRY}.exe ./cmd/drone-${env:REGISTRY}
|
|
|
|
# authenticate with the docker registry
|
|
docker login -u ${env:USERNAME} -p ${env:PASSWORD}
|
|
|
|
echo "building images:"
|
|
echo ${env:IMAGE_PATCH}
|
|
echo ${env:IMAGE_MINOR}
|
|
echo ${env:IMAGE_MAJOR}
|
|
|
|
# build and tag the docker images
|
|
Write-Host "+ docker build -f docker/${env:REGISTRY}/Dockerfile.windows.amd64.${env:VERSION} -t ${env:IMAGE_PATCH} ."
|
|
docker build -f docker/${env:REGISTRY}/Dockerfile.windows.amd64.${env:VERSION} -t ${env:IMAGE_PATCH} .
|
|
Write-Host "+ docker tag ${env:IMAGE_PATCH} ${env:IMAGE_MAJOR}"
|
|
docker tag ${env:IMAGE_PATCH} ${env:IMAGE_MAJOR}
|
|
Write-Host "+ docker tag ${env:IMAGE_PATCH} ${env:IMAGE_MINOR}"
|
|
docker tag ${env:IMAGE_PATCH} ${env:IMAGE_MINOR}
|
|
|
|
# publish the docker images
|
|
Write-Host "+ docker push ${env:IMAGE_MAJOR}"
|
|
docker push ${env:IMAGE_MAJOR}
|
|
Write-Host "+ docker push ${env:IMAGE_MINOR}"
|
|
docker push ${env:IMAGE_MINOR}
|
|
Write-Host "+ docker push ${env:IMAGE_PATCH}"
|
|
docker push ${env:IMAGE_PATCH}
|
|
|
|
# remove images after from local cache
|
|
Write-Host "+ docker rmi ${env:IMAGE_MAJOR}"
|
|
docker rmi ${env:IMAGE_MAJOR}
|
|
Write-Host "+ docker rmi ${env:IMAGE_MINOR}"
|
|
docker rmi ${env:IMAGE_MINOR}
|
|
Write-Host "+ docker rmi ${env:IMAGE_PATCH}"
|
|
docker rmi ${env:IMAGE_PATCH}
|