1
0
Fork 0
llvm-premerge-checks/containers/build_deploy.ps1
ChristianKuehnel a47751ebe8
Upgrade Windows agents to Visual Studio 2019 and sccache (#162)
* added cmake parameters for sccache

* added sccache

* removed stray debug output

* starting sccache with VS environment

* added container for Visual Studio 2019

* fixed comments

* considering WIndows version

* updated to vs2019

* using MS install method

* snapshot of VS2019 experiments

* using --installRecommended

* cleanup of dockerfile

* updated path

* fixed dockerfile

* dumped version number

* exclude for virus scan

* added testing option

this does not start the agent

* write results on failures

* added timeouts for pipelines

* moving master pipelines to python scripts

* added flang to automatic project selection

based on #159, this will enable flang for beta testers

* added persistent workspace for testing containers

* added secure delete function

* added better log message

* deleting read-only files

* checking existence before setting flags

* using unlink

* deleting recursively

* using pathlib for chmod

* using custom workspace

* fixed drive

* separate handling of single files

* simplified read-only handling again

* removed vsdevcmd calls

as it's already set in the docker Entrypoint

* renamed container folders

* windows version not needed any more

* bumped version number

* bumped version number

* script cleanup

* added cmake parameters for sccache

* added sccache

* starting sccache with VS environment

* added container for Visual Studio 2019

* fixed comments

* considering WIndows version

* updated to vs2019

* using MS install method

* snapshot of VS2019 experiments

* using --installRecommended

* cleanup of dockerfile

* updated path

* fixed dockerfile

* dumped version number

* removed vsdevcmd calls

as it's already set in the docker Entrypoint

* renamed container folders

* windows version not needed any more

* bumped version number

* bumped version number

* script cleanup

* removed sccache from vs2017

* making windows image configurable

* added versioning

* created windows BETA pipeline

* added Jenkins label for vs2019
2020-04-21 11:46:41 +02:00

61 lines
No EOL
1.9 KiB
PowerShell

# Copyright 2019 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.
# define command line arguments
param(
[Parameter(Mandatory=$true)][string]$IMAGE_NAME
)
$ROOT_DIR=(Get-Item $PSScriptRoot).Parent.FullName
. ${ROOT_DIR}\scripts\common.ps1
$VERSION_FILE="VERSION"
# get config options
Get-Content "${ROOT_DIR}\k8s_config" | Foreach-Object{
if (! $_.StartsWith('#') ){
$var = $_.Split('=')
New-Variable -Name $var[0] -Value $var[1]
}
}
$QUALIFIED_NAME="${GCR_HOSTNAME}/${GCP_PROJECT}/${IMAGE_NAME}"
Push-Location "$PSScriptRoot\$IMAGE_NAME"
$container_version=[int](Get-Content $VERSION_FILE)
$container_version+=1
$agent_windows_version=Get-Content "../agent-windows-vs2019/$VERSION_FILE"
Write-Host "Building ${IMAGE_NAME}:${container_version}..."
Write-Host "Using windows-agent ${agent_windows_version}"
Invoke-Call -ScriptBlock {
docker build . `
-t ${IMAGE_NAME}:${container_version} `
-t ${IMAGE_NAME}:latest `
--build-arg agent_windows_version=$agent_windows_version
}
Invoke-Call -ScriptBlock {
docker tag ${IMAGE_NAME}:${container_version} ${QUALIFIED_NAME}:${container_version}
}
Invoke-Call -ScriptBlock {
docker tag ${IMAGE_NAME}:latest ${QUALIFIED_NAME}:latest
}
Invoke-Call -ScriptBlock {
docker push ${QUALIFIED_NAME}:$container_version
}
Invoke-Call -ScriptBlock {
docker push ${QUALIFIED_NAME}:latest
}
$container_version | Out-File $VERSION_FILE
Pop-Location