Svn 詹金斯如何存储构建信息 我想解决的是什么

Svn 詹金斯如何存储构建信息 我想解决的是什么,svn,jenkins,Svn,Jenkins,我在Jenkins上有一个任务,就是触发一个shell脚本,它生成一个工件并上传到NFS。我想为QA添加一个流程,以便在验证构建后访问Jenkins,将构建作为发布构建进行推广。目前,测试不是自动化的,因此升级的触发是手动的。升级所做的是将NFS上的工件移动到不同的位置。我正在考虑使用Ansible或shell脚本来存档此文件 有什么问题吗 问题是,当触发升级时,我需要知道在Jenkins作业中每个特定构建的NFS上构建、SVN等的位置。我想知道是否有现有的插件或解决方案 我在想什么 作为构建步

我在Jenkins上有一个任务,就是触发一个shell脚本,它生成一个工件并上传到NFS。我想为QA添加一个流程,以便在验证构建后访问Jenkins,将构建作为发布构建进行推广。目前,测试不是自动化的,因此升级的触发是手动的。升级所做的是将NFS上的工件移动到不同的位置。我正在考虑使用Ansible或shell脚本来存档此文件

有什么问题吗 问题是,当触发升级时,我需要知道在Jenkins作业中每个特定构建的NFS上构建、SVN等的位置。我想知道是否有现有的插件或解决方案

我在想什么
  • 作为构建步骤的一部分,收集这些信息并将其写入平面文件/关系数据库,以便在数据库中存储构建、构建路径、修订和svn差异。触发升级时,脚本将从DB读取并执行升级
  • 我认为读写数据库是可行的,但对我来说似乎有点过头了。我只是想知道我是否遗漏了什么。我很好奇Jenkins是否有类似用例的内置插件


    谢谢

    您走的是正确的道路。阅读以下答案:

    在生成作业中,将需要的所有信息保存到属性文件中:

    var1=blah  
    var2=lalala
    
    在构建过程结束时归档此文件(归档是标准的构建后步骤)

    当升级运行时,您需要使用
    PROMOTED\u NUMBER
    参数指定要对哪个构建执行操作。然后使用复制工件插件,将先前保存的属性文件拉到升级的工作区(阅读链接的答案)。复制后,您可以使用plugin将属性文件作为环境变量加载,或者按原样在shell/ansible中使用它

    编辑:

    正如链接答案中所述,你不需要做两份工作。但请记住,升级过程作为单独的过程运行,但使用与主作业相同的工作区,因此为了避免工作区内的冲突,请仅为升级过程创建一个单独的文件夹,并在那里执行所有升级工作。

    谢谢Slav。根据你的解决方案,我能解决我的问题。我完全同意在单独的文件夹中进行促销。现在,我正在考虑多个用户尝试升级不同版本的场景。我假设我会以一种不引入竞争条件的方式使文件夹唯一。我不认为您可以同时运行同一作业的多个升级过程,但如果是,您可以始终使用工作区名称后附加的
    $PROMOTED\u NUMBER
    使其唯一。只要确保你有一些清理,否则你会被这些独特的文件夹弄得乱七八糟,而这些文件夹永远不会被删除。我使用了job name&PROMOTED(职务名称和晋升编号)使其独特。现在文件夹中的每个工件只有100B,所以我可能会将它们保存在那里以供参考。还是不确定我以后是否需要这些信息。