Jenkins大师-Linux 詹金斯奴隶-Windows Jenkins触发一个在Windows从属服务器上运行并执行所需测试的硒脚本。测试流程如下。 步骤1-生成一个文件并将其存储在项目工作区中。文件正在存储在主节点(Linux)上的Jenkins工作空间中。 步骤2-在从属服务器(Windows)上,脚本正在打开应用程序和浏览器上载窗口,以上载存储在Jenkins工作区中的文件。 第3步-AutoIt用于自动执行“文件上传”部分。在上载窗口中输入文件路径。 步骤4-现在,当尝试获取jenkins master上的文件时,文件路径作为Linux路径出现,在浏览器上载窗口中不起作用。因为它将只接受Windows操作系统的文件路径格式。
尝试过的选项- 1.尝试使用“复制以保存”插件,但它在构建结束时复制文件。但是要求是它必须获取文件并在运行时上载它。 2.尝试创建一个文件夹/文件,以提供Windows路径,以查看是否在Windows上创建了该文件夹或文件,但仅在Jenkins master上创建。例如,“ C:\ temp”被创建为Linux上的目录。 3.在Windows节点上打开jenkins,然后从那里触发scipt。没有影响。 4.想到了使用Winscp脚本将文件从linux传输到Windows,但是如果无法通过运行时的代码访问从属(窗口OS)的文件夹/文件,则将是没有用的,这是目前的情况。
Q1-有什么办法,尽管脚本是通过Jenkins master触发的,但是我们可以在运行时访问slave的文件夹/文件内存来保存/获取文件? 问题2-有什么控制机制可以将该文件存储在jenkins工作区之外?
答案 0 :(得分:0)
您可以尝试如下构建管道:
pipeline{
agent { label 'master' }
stages {
stage('Some Stage') {
steps{
// This will create temporary zip of files for current build from master
stash includes: 'your/folder/path/pattern', name : 'tempName'
}
}
stage('Run node server') {
agent { label 'slave name' }
steps{
// unzip the files which are zipped previously
unstash 'tempName'
}
}
}
}
请注意,在每个阶段,座席标签将是您已经设置的座席标签。
请参阅this文档以获取更多信息