54 lines
1.8 KiB
PowerShell
54 lines
1.8 KiB
PowerShell
# Copyright 2021 Google LLC
|
|
|
|
# Licensed under the the Apache License v2.0 with LLVM Exceptions (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
|
|
# https://llvm.org/LICENSE.txt
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# Pull and start the Docker container for a Windows agent.
|
|
# To setup a Windows agent see docs/playbooks.md
|
|
|
|
param(
|
|
[string]$version = "stable",
|
|
[switch]$testing = $false,
|
|
[string]$workdir = "c:\ws"
|
|
)
|
|
|
|
$NAME="agent-windows-buildkite"
|
|
$IMAGE="gcr.io/llvm-premerge-checks/${NAME}:${version}"
|
|
|
|
Write-Output "Authenticating docker..."
|
|
Write-Output "y`n" | gcloud auth configure-docker
|
|
|
|
Write-Output "Pulling new image '${IMAGE}'..."
|
|
docker pull ${IMAGE}
|
|
$DIGEST=$(docker image inspect --format "{{range .RepoDigests}}{{.}}{{end}}" $IMAGE) -replace ".*@sha256:(.{6})(.*)$","`$1"
|
|
Write-Output "Image digest ${DIGEST}"
|
|
Write-Output "Stopping old container..."
|
|
docker stop ${NAME}
|
|
docker rm ${NAME}
|
|
if (${testing}) {
|
|
Write-Output "Starting container with powershell to test..."
|
|
docker run -it `
|
|
-v ${workdir}:C:\ws `
|
|
-v C:\credentials:C:\credentials `
|
|
-e BUILDKITE_BUILD_PATH=C:\ws `
|
|
-e IMAGE_DIGEST=${DIGEST} `
|
|
${IMAGE} powershell
|
|
} else {
|
|
Write-Output "Starting container with workdir ${workdir}..."
|
|
docker run -d `
|
|
-v ${workdir}:C:\ws `
|
|
-v C:\credentials:C:\credentials `
|
|
-e BUILDKITE_BUILD_PATH=C:\ws `
|
|
-e IMAGE_DIGEST=${DIGEST} `
|
|
--name ${NAME} `
|
|
${IMAGE}
|
|
}
|