【问题标题】:Jenkins: writing to Global Parameters詹金斯:写入全局参数
【发布时间】:2017-01-27 15:56:52
【问题描述】:

在 Jenkins 中是否有一种方法不仅可以读取而且还可以从作业中写入全局参数? 为了实现阅读我使用了这个插件:Global Variable String Parameter 但是,我还没有发现支持对全局参数的写访问。我认为这很关键,因为它会产生竞争条件。

我真正想做的事:

我有两个 Jenkins 作业 - 每个都将我的 Android APK 发布到 Google Play 商店,但发布到不同的发布轨道(例如“发布”和“测试版”)。

我希望通过 gradle 自动增加内部版本号。但是 gradle 需要从我的 VCS 之外的任何地方访问最后一个构建的构建号(以避免需要再次提交)。我想保证内部版本号是按时间顺序排列的。因此,为每个 Jenkins 作业保留一个单独的内部版本号(例如,在“version.properties”文件中)不是一个解决方案。

B 计划可能是切换到日期编码的内部版本号。但我很好奇是否有一种增量方法。

【问题讨论】:

    标签: android jenkins continuous-integration jenkins-plugins increment


    【解决方案1】:

    您可以使用位于 jenkins 工作区而不是作业工作区中的“version.properties”文件。

    1- 从文件中注入环境变量

    2- 构建 apk

    3- 从 shell 脚本中增加版本

    版本=$(($version+1))

    echo version=$version > ${JENKINS_HOME}/workspace/module.properties

    【讨论】:

    • 我只是把文件放在我的詹金斯服务器的文件系统上吗?或者我可以在 jenkins 中配置全局“version.properties”,以便在多个节点的情况下进行扩展?
    • 是的,您必须将文件放在文件系统上,不幸的是,此解决方案仅在您不使用节点时才有效,因为它们不会共享相同的工作空间。
    • 感谢您的澄清。 Jenkins 不支持全局可写变量的原因可能是同步问题和竞争条件。
    猜你喜欢
    • 2013-11-01
    • 1970-01-01
    • 2020-03-30
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多