![](/img/trans.png)
[英]How to read yaml file from master using Jenkinsfile pipeline script when jenkins job is running on slave machine?
[英]Copy file from Jenkins master to slave in Pipeline
我的 Jenkins 有一些 windows 奴隸,所以我需要在管道中將文件復制到他們。 我聽說過 Copy To Slave 和 Copy Artifact 插件,但它們沒有管道語法手冊。 所以我不知道如何在管道中使用它們。
直接復制不行。
def inputFile = input message: 'Upload file', parameters: [file(name: 'parameters.xml')]
new hudson.FilePath(new File("${ENV:WORKSPACE}\\parameters.xml")).copyFrom(inputFile)
此代碼返回錯誤:
Caused: java.io.IOException: Failed to copy /var/lib/jenkins/jobs/_dev/jobs/(TEST)job/builds/107/parameters.xml to d:\Jenkins\workspace\_dev\(TEST)job\parameters.xml
有沒有辦法在 Jenkins 管道中將文件從主機復制到從機?
據我了解, copyFrom
是在Windows節點上執行的,因此無法訪問源路徑。
我認為您想研究stash
/ unstash
stash
步驟( Jenkins Pipeline:基本步驟 ),該步驟可在不同節點上工作。 同樣,此示例可能會有所幫助。
管道DSL上下文在master
節點上運行,即使您在管道中的寫入node('someAgentName')
也是如此。
archive()
和sh("wget $url")
會有所幫助。 如果需要將可執行文件復制到測試從站並發布測試結果,則無需復制到從站插件即可輕松完成。
應該在每個測試從站上創建一個共享文件夾(普通的 Windows 共享文件夾)。
構建后:構建腳本將可執行文件復制到每個從站上的共享目錄。 使用copy
命令的簡單批處理腳本就足夠了。
stage ('Copy to slaves') {
steps {
bat 'call "copy-to-slave.bat"'
}
}
在測試期間:測試腳本將可執行文件復制到另一個目錄並運行它。
測試后:構建后動作“發布機器人框架測試結果”可用於報告測試結果。 無需先將測試結果文件復制回主站。
我在Pipeline: Phoenix AutoTest
插件
Jenkins插件網址: https://plugins.jenkins.io/phoenix-autotest/#documentation
GitHub 插件倉庫: https://github.com/jenkinsci/phoenix-autotest-plugin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.