2014-05-09 72 views
5

我試圖在Jenkins創建一個工作,這將允許我構建一個存儲在Subversion中的項目,但會問我要構建哪個標記,分支或樹幹。在Jenkins中構建SVN主幹,分支和標籤?

我試着讓它成爲一個參數化的版本,增加了「List Subversion tags」參數,但是隻創建了一個只有/ branches,/ tags和/ trunk的下拉菜單。它沒有列出單個分支或標籤。

我以爲使用Subversion Release Manager可以解決這個問題,但是它沒有提供如何使用它的有意義的文檔,到目前爲止我所有的嘗試都沒有要求我使用分支,而是繼續檢查整個樹幹和每個分支和標籤。

Jenkins Issue 10678應該是提供了這個,但那是在2011年,如果它仍然應該工作,我一直無法爲我工作。

有誰知道如何做到這一點?

回答

5

您可以將變量用於存儲庫位置,因此jenkins中的存儲庫URL看起來像http://myhost.com/MY_REPO/${some_branch},其中some_branch是您的參數。可以將此參數設置爲可以手動輸入的字符串參數,也可以使用動態選項參數,然後使用存儲庫中的信息(https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Dynamic+Parameter+Plug-in)自動填充下拉菜單。例如:

動態選擇參數:「some_branch」

// Choices Script (groovy) 
def dirs = ['trunk/'] // defaults to trunk 

def command = ['svn', 'ls', 'http://myhost.com/MY_REPO/tags'] 
def proc = command.execute() 
proc.in.eachLine { dirs.add('tags/' + it) } 

command = ['svn', 'ls', 'http://myhost.com/MY_REPO/branches'] 
proc = command.execute() 
proc.in.eachLine { dirs.add('branches/' + it) } 

dirs 
+0

在庫網址[JENKINS-18426(https://issues.jenkins-ci.org/browse/JENKINS-18426?page=com.atlassian使用變量時要警惕這個問題與Subversion插件。 jira.plugin.system.issuetabpanels:all-tabpanel) – coz

+0

也可以指向版本庫根目錄。像那樣,例如可以使用參數$ VERSION,其將包括例如「trunk」,「branches/branch1.2.3」或「tags/tag-3.4.5」。 – Alex

0

我使用的顛覆插件和它的作品真的很好。 不確定自發布問題後是否有更改。

只需a note即可爲初學者設置插件。

它提供了一個一步一步的解決方案與截圖。

0

您使用管道?聲明或腳本?如果你想用腳本管道來做到這一點,請嘗試以下內容......我試圖弄清楚這一點的同時,我花了好幾個小時敲着腦袋。聲明式管道很好,但只要你需要做一些不同的事情,它就會變成一場噩夢(根據我的經驗)。更不用說在查找示例/文檔時,最終會發現關於聲明性管道的很多內容,而且很少介紹腳本。

parameters([ 
    [$class: 'ListSubversionTagsParameterDefinition', 
      name: 'SVN_TAG_TO_BUILD', 
      tagsDir: 'https://server/svn/repo/tags', 
      credentialsId: 'jenkins', 
      maxTags: '50', 
      reverseByDate: true, 
      reverseByName: false], 
    string(
     defaultValue: 'Running release build', 
     description: 'Comments to leave when creating the release build tag', 
     name: 'SVN_COMMENTS' 
    ) 
])