2011-03-17 53 views

回答

8

Copy Artifact插件似乎能夠做到這一點。

另一種方法可能是通過

http://server/jobs/job1/[build #]/artifacts/ 
+0

我們廣泛使用簡單的HTTP獲取工作的下載URL來將工件拉入下游作業。 – 2011-03-18 17:50:51

+0

複製工件插件的問題是您需要知道您將需要其他位置的工件。如果我們忘記了這一點,並且複製了所有默認文件,每個版本大約40-50 MB,那麼這將會以兩倍的速度增加磁盤使用量。 通過URL進行提取是不可能的,因爲我們的設置需要驗證。 – 2011-03-22 04:05:17

+0

@Konstantin我猜這些網址不需要驗證,對吧? – 2011-03-22 04:09:07

1

獲取神器您可以使用在作業的配置頁面「構建環境」的配置工具。勾選Configure M2 Extra Build Steps框,然後添加一個Execute Shell,從所需的工件中獲取grep。

0

我們也有類似的需求,並根據以下系統常規:

import hudson.model.* 

def currentBuild = Thread.currentThread().executable; 
currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'FAILURE'))); 
def buildJob = Hudson.instance.getJob("ArtifactJobName"); 
def artifacts = buildJob.getLastBuild().getArtifacts(); 
if (buildJob.getLastBuild().getResult() == Result.SUCCESS && artifacts != null && artifacts.size() > 0) { 
    currentBuild.addAction(new ParametersAction(new StringParameterValue('VARIABLE_NAME', artifacts[0].getFileName()))); 
    currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'SUCCESS'))); 
} 

這與它的工件名稱從ArtifactJobName,我們使用,因爲它們都存儲在一個特定的文件夾中創建一個VARIABLE_NAME。我不確定如果你有多個工件會發生什麼,但似乎你可以從工件數組中得到它們。

您可以使用getLastSuccessfulBuild來防止此時正在構建另一個ArtifactJobName並且您得到空數組。

相關問題