【问题标题】:Plugin to Copy Files from Desktop to Jobs Workspace in Jenkins在 Jenkins 中将文件从桌面复制到作业工作区的插件
【发布时间】:2013-12-20 04:46:51
【问题描述】:

我有一个场景,其中创建了一些配置文件的用户需要从他们访问 Jenkins 的桌面上传相同的配置文件到 Job 的工作区以构建和执行测试。

所以我确实尝试使用 https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin 中提到的 Config File Provider 插件。这似乎可以很好地将配置文件复制到 Jenkins UI,稍后可以使用相应作业的 构建环境 中的给定路径将其同步到从站。但是希望上传这些文件的用户没有管理权限。因此,他们无法访问 管理 Jenkins 选项卡下的 配置文件管理。有什么方法可以移动 Jenkins 侧边栏下的 配置文件管理 并允许用户对其进行编辑。

还有其他插件可以帮助我实现相同的目标吗?我也尝试过 Copy to Slave 插件,但这只会将 $JENKINS_HOME/userContent 下的文件复制到作业的工作区。我们必须将文件从桌面复制到 $JENKINS_HOME/userContent 然后使用插件。

【问题讨论】:

  • 可能太明显了...但是您不能通过从 git 或您选择的 scm 获取配置文件来加载它吗?然后该作业将执行以下操作:scm 获取配置文件(一个构建步骤),第二步 env-inject 刚刚加载的文件,3 在接下来的步骤中执行您需要的任何操作。通过使用 scm,开发人员只需要将他们的更改推送到存储库中。

标签: jenkins


【解决方案1】:

不会使用参数化作业并且其中一个参数是文件参数吗?见https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build

【讨论】:

  • 参数化构建中的文件参数可以允许构建接受一个文件,由用户在调度新构建时提交。但唯一需要注意的是,在签出/更新完成后,该文件应放置在工作空间内的已知位置,以便您的构建脚本可以使用该文件。但我的要求是用户配置文件需要从用户访问 Jenkins 的任何机器上更新。
  • 任何代替文件参数上传的文件都被放置到工作区中。我相信它总是放在工作区的根目录下,文件名与参数名匹配。因此,即使您上传了一个不同名称的文件,它也会被重命名以匹配参数。由于上传是从任何机器开始构建的,因此文件可能来自任意数量的机器。除非我误解了意图......
  • 如果文件在 git 中维护会发生什么,它是合并到前一个文件还是替换整个文件并将其提交到工作区主文件中?请告诉我
  • @karthik27,Jenkins 文件参数永远不会合并 - 它只是存在。如果 git 工作区碰巧重叠,它将不会被合并或提交。实际上,我不确定首先执行哪个操作 - 将文件复制到工作区然后签出 SCM?或者将 SCM 签出,然后创建文件参数。无论哪种方式 - 都不安全。
猜你喜欢
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 2014-04-19
相关资源
最近更新 更多