2017-02-13 185 views
4

我有一個簡單的流水線作業: 1)檢出的Git分支 2)CD複製到運行目錄 3)執行現有的腳本來運行測試詹金斯管道 - 找不到文件

管道腳本本身在這一點上是非常簡單的:

stage 'build' 
node { 
    git url: '[email protected]:nip_5g_fpga', branch: "Phase_UL_1a" 
    sh "pwd" 
    sh "echo $PATH" 
    sh "ls" 
    dir ('nip_fpga/verification/src/UE/env/top_level/run') { 
     sh "source vcs_bash.sh 1" 
    } 
} 

當我運行它,我得到以下錯誤(只顯示在控制檯的一部分):

Running 
in /var/lib/jenkins/workspace/nip_regression_nightly/nip_fpga/verification/src/UE/env/top_level/run 
[Pipeline] { 
[Pipeline] sh 
[run] Running shell script 
+ source vcs_bash.sh 1 
/var/lib/jenkins/workspace/nip_regression_nightly/nip_fpga/verification/src/UE/env/top_level/[email protected]/durable-c40e151e/script.sh: line 2: source: vcs_bash.sh: file not found 

我檢查過vcs_bash.sh本身存在,但它存在於.../top_level/run目錄中,而不存在於top_level/[email protected]目錄中。所以,我很困惑如何解決這個問題。

另外,我不明白tmp目錄中的管道創建

+0

詹金斯將創建一個臨時文件,並基本上覆制您的內容,然後執行該文件,因此'@ tmp'目錄/文件。 可能發生的情況是jenkins會告訴你'文件未找到',當jenkins中的默認shell是bash,但沒有安裝在節點上(即它是一個沒有bash的windows節點或docker容器) – Rik

+0

@Rik - 我懷疑如果這是上述問題的情況。我會執行一個bash命令並明天檢查。我很好奇爲什麼詹金斯創建tmp目錄執行。我只想讓詹金斯在我的工作區執行。 – Sharanbr

+0

哦,現在我明白了。如果您輸入文件。你不能執行它嗎? – Rik

回答

0

明知管道詹金斯插件商店代碼混帳上的文件夾工作區@腳本的概念,我用這個小把戲訪問我的sh文件:

sh "../[email protected]/myScriptName.sh"