【问题标题】:Jenkins commit a file after successful buildJenkins成功构建后提交文件
【发布时间】:2013-03-28 14:13:12
【问题描述】:

我正在为我的 Web 应用程序使用 Jenkins、Ant、Flex 和 Java。 目前我在 Flex src 中更新了一个构建版本文件并在开始 Jenkins 构建之前提交它。 我想避免这个手动过程,让脚本为我做这件事。

文件内容:

构建=01_01_2013_10:43
发布=2.01

问题1: 我想更新此文件内容并编译我的代码,然后将此文件提交回 svn。这样 SVN 就有了最新的构建版本号。

如何将此更改的文件提交到 SVN。如果在成功构建之后提交,那就太好了。

问题 2: 我想在构建开始前一小时向所有开发人员发送一封电子邮件。 “请提交您的更改。构建将在 1 小时后开始。”我可以在电子邮件和(实际 svn export + ant build)之间设置延迟吗?

我是否必须每隔一小时安排 2 个工作。一个用于发送电子邮件,一个用于构建。

【问题讨论】:

    标签: file ant jenkins checkin post-commit


    【解决方案1】:

    您可以使用subclipse svn ant integration 将更改的文件提交到SVN,包括身份验证:

    <svnSetting
          svnkit="true"
          username="bingo"
          password="bongo"
          id="svn.settings"
      />
    <svn refid="svn.settings">
        <commit file="your.file" />
    </svn>
    

    要获取构建文件的用户名和密码,您有不同的选择。一种是使用parametrized build,您可以在其中将用户名和密码定义为可以在构建文件中评估的构建参数。

          username="${parameter.svn.username}"
          password="${parameter.svn.password}"
    

    第二个选项是使用jenkins config file provider plugin。有了这个,您还可以使用参数化构建等参数,但是您可以从提供的配置文件中导入凭据,例如可以通过

    导入属性文件
    <property file="config.file" />
    

    其实你也可以使用ant's exec task来执行你的subversion提交文件。

    要在实际构建前一小时发送电子邮件,您应该设置两个作业,它们相隔一小时。但我不认为这是在构建之前通知的好习惯,考虑更频繁地构建,甚至每次提交到 svn。

    【讨论】:

    • 谢谢@Markus。我们目前没有计划 CI。我们的 Flex 项目构建耗时近 15 分钟,大部分更改都是简单的 UI 更改。我们目前每天都在进行预定的构建。
    • 如果您接受答案,如果它对您有效,那就太好了。
    • 如何获取 svn 的用户名和密码。我知道詹金斯为每个工作存储这些凭据。如何将这些凭据传递给构建文件。
    • 这意味着我必须在构建文件中有用户名和密码。我需要一种将用户名和密码从 Jenkins 传递到构建文件而不是在构建文件中硬编码的方法。我在 jenkins 项目中提供的相同 svn 凭据应该作为参数传递给构建文件。
    • Jenkins 轮询“repo_a”以获取更改并在发生更改时构建它,构建过程通过更新版本文件提交回“repo_a”(如果构建成功)。这不会创建一个无限循环?
    【解决方案2】:

    您还可以使用 Post build Task 插件 (https://wiki.jenkins-ci.org/display/JENKINS/Post+build+task) 将 svn 作为 shell 脚本执行(必须为运行 Jenkins 的用户安装 svn 并从 shell 验证一次)。

    然后 svn commit 作为构建后操作运行。该插件有一个选项(复选框),仅当先前的构建/步骤成功时才运行脚本。

    这里也提到了插件:Execute Shell Script after post build in Jenkins

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 2015-09-25
      • 2018-04-27
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多