3

我正在为我的 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 个工作。一个用于发送电子邮件,一个用于构建。

4

2 回答 2

5

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

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

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

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

第二种选择是使用jenkins 配置文件提供程序插件。有了这个,您还可以使用参数化构建等参数,但是您可以从提供的配置文件中导入凭据,例如可以通过以下方式导入属性文件

<property file="config.file" />

实际上你也可以使用ant 的 exec 任务来执行你的 subversion 提交文件。

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

于 2013-04-06T06:32:43.387 回答
1

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

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

这里也提到了插件:在 Jenkins 中构建后执行 Shell 脚本

于 2013-04-26T13:42:14.057 回答