需要通过Jenkins从属(Windows)上的浏览器窗口上传文件,但文件位于Jenkins Master(Linux)



jenkins master -linux詹金斯奴隶 - 窗户Jenkins触发了一个在Windows从服务器上运行并执行所需测试的Selenium脚本。测试流如下。步骤1-它生成文件并将其存储在项目工作区中。文件存储在主节点(Linux)上的Jenkins Workspace上。步骤2-在从属(Windows)上,脚本正在打开应用程序和浏览器上传窗口,以上传存储在Jenkins Workspace中的文件。步骤3 -AutoIT用于自动化"文件上传"部分。在上传窗口中输入FilePath。步骤4-现在,当尝试获取Jenkins Master上的文件时,文件路径将作为Linux路径(在浏览器上传窗口上不起作用)的Linux路径。因为它将仅接受Windows操作系统的文件路径格式。

尝试选项 - 1.尝试使用"复制来保存"插件,但它在构建末尾复制了文件。但是要求是必须在运行时获取文件并上传。2.尝试创建一个文件夹/文件,给Windows路径以查看,如果它在Windows上创建该文件夹或文件,但仅在Jenkins Master上创建。例如," C: temp"是在Linux上创建的。3.在Windows节点上打开Jenkins,并从那里触发SCIPT。没有影响。4.考虑使用WINSCP脚本将文件从Linux传输到Windows,但是如果无法在运行时代码访问Slave(Window OS)的文件夹/文件,则是没有用的。

Q1-有什么办法,我们可以访问从属的文件夹/文件内存以在运行时保存/获取文件,尽管脚本是通过Jenkins Master触发的?Q2-是否有任何控制机制,该文件可以在Jenkins工作区外存储?

您可以尝试如下:

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'
                }
            }
    }
}

注意每个阶段的代理标签将是您已经设置的代理标签。

请参阅此文档以获取更多信息

相关内容

  • 没有找到相关文章

最新更新