我想将文件从我的后期构建Jenkins工作区传输到远程服务器上的某个位置。生成在作业中的所有步骤都顺利进行,但始终传输0个文件。
这是控制台输出:
Started by user Patrick
Building in workspace /var/lib/jenkins/jobs/20eyes Build/workspace
Fetching changes from the remote Git repository
Fetching upstream changes from https://github.com/project/project.git
using .gitcredentials to set credentials
Checking out Revision a758e0f8e534271b999a2fc8696b6fd5a3d5e500 (origin/master)
executing script:
cd /var/www/20eyes-web
[SSH] exit-status: 0
SSH: Connecting from host [dev1.remotehost]
SSH: Connecting with configuration [dev2.remotehost] ...
SSH: Disconnecting configuration [dev2.remotehost] ...
SSH: Transferred 0 file(s)
Build step 'Send files or execute commands over SSH' changed build result to SUCCESS
Finished: SUCCESS
作业配置为在任何提交推送到GitHub后构建
转移装置为:源文件:
/var/lib/jenkins/jobs/20eyes Build/workspace/**/*
删除前缀:
/var/lib/jenkins/jobs/20eyes Build/workspace
7条答案
按热度按时间qaxu7uf21#
我想,你的配置有问题。我们有两个位置要配置。
1.在系统配置(全局配置)时。--> If test ok ==>远程服务器的配置正常。
1.在你的项目上。我们将重点关注转移集:(源文件、删除前缀、远程目录)
2.1源文件:如果是空白=工作区目录。在你的情况下,我认为你应该输入
**/*
2.2删除前缀:更多信息请参考此处。
2.3远程目录:if it's blank =在上面的系统配置中配置的目录。
希望有帮助!抱歉我的英语不好
9rnv2umw2#
先试试看:仅使用以下选项设置源文件夹:**/* 查看是否复制了任何文件。如果文件被复制,那么看看这里,看看如何在这里写正确的路径
eivgtgni3#
我的建议:
*您应该避免在Jenkins作业名称中使用空格!
20eyes Build
在文件/目录匹配中可能会产生一些问题*应该使用相对路径,而不是绝对路径!
/var/lib/jenkins/...
应替换为作业工作区的相对路径*你不应该复制整个工作区!
*您应该查看Publish Over plugins的文档和示例:
6yt4nkrj4#
在我的例子中,我使用的是“传输集源文件:”中的绝对路径(从根目录)。当我改变了相对于工作区的路径,它的工作!
uxh89sit5#
关于
sourceFiles
的常见错误这将不起作用:
sourceFiles: '/path/dir/**'
sourceFiles: '../dir/**'
sourceFiles: './dir/**'
!虽然这将:
sourceFiles: 'dir/**'
行为解释in plugin docs:
sourceFiles
是一个字符串,逗号分隔的包含列表,用于Ant文件集例如。'**/*.jar'(参见Ant手册中的模式)。而Ant手册中的模式说:
通常,模式被认为是相对路径,相对于任务相关的基目录(在的情况下是dir属性)。仅考虑在该基目录下找到的文件。因此,虽然可以使用../ www.example.com这样的模式foo.java,但在应用时它不会匹配任何内容,因为基目录的父目录永远不会被扫描文件。
6tdlim6h6#
管理Jenkins >>配置系统>> SSH服务器
请参阅下图以供参考:
pengsaosao7#
你们忽略了一件简单的事
请确保您的路径不以“/”开头