# this script is used by the continuous integration server to # build and publish the docker image for a tagged revsision. $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 go build -o release/windows/amd64/drone-$env:REGISTRY.exe # 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 docker build -f docker/$env:REGISTRY/Dockerfile.windows.amd64.$env:VERSION -t $env:IMAGE_PATCH . docker tag $env:IMAGE_PATCH $env:IMAGE_MAJOR docker tag $env:IMAGE_PATCH $env:IMAGE_MINOR # publish the docker images docker push $env:IMAGE_MAJOR docker push $env:IMAGE_MINOR docker push $env:IMAGE_PATCH # remove images after from local cache docker rmi $env:IMAGE_MAJOR docker rmi $env:IMAGE_MINOR docker rmi $env:IMAGE_PATCH