2017-10-19 154 views
0

我有詹金斯管道安裝,並具有以下內容的詹金斯文件:詹金斯被檢查出整個SVN回購兩次

pipeline { 
    agent any 

    stages { 

     stage('Build') { 
      steps { 
       echo 'Hey' 
      } 
     } 
    } 
} 

賽後commit鉤子觸發詹金斯成功構建,我可以看到它從Jenkins UI開始。它聲明它檢出從Jenkins文件讀取的回購,並將結帳存儲在服務器上的[email protected]文件夾中。

Checking out svn https://<svn_server>/svn/Test/Core into C:\Program Files (x86)\Jenkins\jobs\CI_Build\[email protected] to read JenkinsPipeline/Jenkinsfile 
Checking out a fresh workspace because C:\Program Files (x86)\Jenkins\jobs\CI_Build\[email protected] doesn't exist 
Cleaning local Directory . 

上述過程完成後,我做的回購更改一個文件並生成通過後觸發commit掛鉤愉快,但隨後再次嘗試簽出整個代碼庫到一個名爲workspace文件夾。我本來會希望結賬會發生一次,然後「儘可能多地使用SVN更新」選項會啓動並僅更新已更改的文件?或者,也許我有錯誤的邏輯?

SVN版本 - 1.9.7

詹金斯版本 - 2.84

回答

1

詹金斯必須知道什麼是你的管道腳本之前就知道它是否應該籤你的代碼。您的管道可能會說不檢查代碼,並將其設置爲子目錄並自行啓動檢出。或者可能在不同的地方結帳多個回購。在詹金斯看到你的詹金斯文件之前,它不知道你想要什麼。所以它必須檢查回購一次以查看您的管道,然後再次完成工作。

使用git(也可能是某些版本的其他repo插件)支持輕量級或稀疏檢出,因此它只抓取jenkinsfile而不是整個repo。我不認爲這是SVN支持的選項。

+0

現在更有意義了。非常感謝。 – mac