git Jenkins使用通过SSH发布插件传输0个文件

hs1ihplo  于 2023-09-29  发布在  Git
关注(0)|答案(7)|浏览(165)

我想将文件从我的后期构建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
qaxu7uf2

qaxu7uf21#

我想,你的配置有问题。我们有两个位置要配置。
1.在系统配置(全局配置)时。--> If test ok ==>远程服务器的配置正常。
1.在你的项目上。我们将重点关注转移集:(源文件、删除前缀、远程目录)
2.1源文件:如果是空白=工作区目录。在你的情况下,我认为你应该输入**/*
2.2删除前缀:更多信息请参考此处。
2.3远程目录:if it's blank =在上面的系统配置中配置的目录。
希望有帮助!抱歉我的英语不好

9rnv2umw

9rnv2umw2#

先试试看:仅使用以下选项设置源文件夹:**/* 查看是否复制了任何文件。如果文件被复制,那么看看这里,看看如何在这里写正确的路径

eivgtgni

eivgtgni3#

我的建议:

*您应该避免在Jenkins作业名称中使用空格!

  • 在您的情况下:name 20eyes Build在文件/目录匹配中可能会产生一些问题
    *应该使用相对路径,而不是绝对路径!
  • 在您的情况下:/var/lib/jenkins/...应替换为作业工作区的相对路径
    *你不应该复制整个工作区!
  • 仅指定上次生成的适当文件(例如,目标目录中的WAR文件)
    *您应该查看Publish Over plugins的文档和示例
  • 这些例子对你很有用
6yt4nkrj

6yt4nkrj4#

在我的例子中,我使用的是“传输集源文件:”中的绝对路径(从根目录)。当我改变了相对于工作区的路径,它的工作!

uxh89sit

uxh89sit5#

关于sourceFiles的常见错误
这将不起作用:

  • sourceFiles: '/path/dir/**'
  • sourceFiles: '../dir/**'
  • 甚至sourceFiles: './dir/**'

虽然这将:

  • sourceFiles: 'dir/**'

行为解释in plugin docs:sourceFiles是一个字符串,逗号分隔的包含列表,用于Ant文件集例如。'**/*.jar'(参见Ant手册中的模式)。
而Ant手册中的模式说:

  • http://ant.apache.org/manual/dirtasks.html#patterns

通常,模式被认为是相对路径,相对于任务相关的基目录(在的情况下是dir属性)。仅考虑在该基目录下找到的文件。因此,虽然可以使用../ www.example.com这样的模式foo.java,但在应用时它不会匹配任何内容,因为基目录的父目录永远不会被扫描文件。

6tdlim6h

6tdlim6h6#

After Appropriated configuring the SSH server/host in:

管理Jenkins >>配置系统>> SSH服务器

Then you can configure the source file in this format **/*.war or **/*.jar as the case may be.

The remote directory in this format: //opt//copyfolder

请参阅下图以供参考:

pengsaosao

pengsaosao7#

你们忽略了一件简单的事

请确保您的路径不以“/”开头

相关问题