diff --git a/Jenkins/master-windows-pipeline/Jenkinsfile b/Jenkins/master-windows-pipeline/Jenkinsfile index 478d61f..59e1035 100644 --- a/Jenkins/master-windows-pipeline/Jenkinsfile +++ b/Jenkins/master-windows-pipeline/Jenkinsfile @@ -31,13 +31,13 @@ pipeline { stages { stage("git checkout"){ steps { - git url: 'https://github.com/llvm/llvm-project.git' - powershell 'New-Item -ItemType Directory -Force -Path llvm-premerge-checks' - powershell 'New-Item -ItemType Directory -Force -Path ${TARGET_DIR}' dir("llvm-premerge-checks") { git url: 'https://github.com/google/llvm-premerge-checks.git' } + powershell "${SCRIPT_DIR}/git_checkout.ps1" + powershell 'New-Item -ItemType Directory -Force -Path llvm-premerge-checks' + powershell 'New-Item -ItemType Directory -Force -Path ${TARGET_DIR}' } } stage('CMake') { diff --git a/scripts/git_checkout.ps1 b/scripts/git_checkout.ps1 new file mode 100644 index 0000000..04b51a2 --- /dev/null +++ b/scripts/git_checkout.ps1 @@ -0,0 +1,26 @@ +# 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. + + +if (Test-Path -PathType Container .git){ + Write-Output "performing git pull..." + git checkout master + git reset --hard + git clean -fdx + git pull + # TODO: in case of errors: delete folder and clone +} else { + Write-Output "performing git clone..." + git clone --depth 1 https://github.com/llvm/llvm-project +} \ No newline at end of file