Build Hudson作业可以在不下拉代码的情况下轮询SCM吗?

Build Hudson作业可以在不下拉代码的情况下轮询SCM吗?,build,continuous-integration,hudson,Build,Continuous Integration,Hudson,每次提交到存储库时,我都要运行一个作业。我不想把这段代码往下拉,我只想要通知构建触发器。那么,有没有一种方法可以在构建时不拉下SCM中的某些存储库,或者对构建中SCM中没有的内容进行轮询?您可以使用a触发hudson作业。您可以使用a触发hudson作业。因为您希望避免更改SVN,您必须编写一个每隔一段时间(可能每5分钟)执行一次的作业。此作业使用windows bach或shell脚本任务运行svn命令,以获取相关分支的当前版本。如果有更改,可以将作业的状态设置为“不稳定”。不要使用失败,因为

每次提交到存储库时,我都要运行一个作业。我不想把这段代码往下拉,我只想要通知构建触发器。那么,有没有一种方法可以在构建时不拉下SCM中的某些存储库,或者对构建中SCM中没有的内容进行轮询?

您可以使用a触发hudson作业。

您可以使用a触发hudson作业。

因为您希望避免更改SVN,您必须编写一个每隔一段时间(可能每5分钟)执行一次的作业。此作业使用windows bach或shell脚本任务运行svn命令,以获取相关分支的当前版本。如果有更改,可以将作业的状态设置为“不稳定”。不要使用失败,因为您无法区分真正的失败和存储库更改。我认为有一个插件可以根据输出的内容设置作业状态

然后,您可以使用电子邮件扩展插件在每次修订更改时发送电子邮件。您可以从上一个作业(或更好的是上一个成功或不稳定的作业)中获取修订号。您可以归档包含作业修订号的文件,也可以使用描述设置器插件将作业的描述设置为修订。看看哈德逊远程API,了解如何从上一份工作中获取信息


因为你经常在白天工作。不要忘记删除旧的作业运行。但我会保留至少两天的历史记录,以防您的svn停机24小时。

因为您希望避免更改svn,所以您必须编写一个每隔一次(可能每5分钟)执行一次的作业。此作业使用windows bach或shell脚本任务运行svn命令,以获取相关分支的当前版本。如果有更改,可以将作业的状态设置为“不稳定”。不要使用失败,因为您无法区分真正的失败和存储库更改。我认为有一个插件可以根据输出的内容设置作业状态

然后,您可以使用电子邮件扩展插件在每次修订更改时发送电子邮件。您可以从上一个作业(或更好的是上一个成功或不稳定的作业)中获取修订号。您可以归档包含作业修订号的文件,也可以使用描述设置器插件将作业的描述设置为修订。看看哈德逊远程API,了解如何从上一份工作中获取信息


因为你经常在白天工作。不要忘记删除旧的作业运行。但我会保留至少两天的历史记录,以防您的svn停机24小时。

执行作业所使用的代码应该从何而来?代码已经存在,由shell脚本构建。一个更清楚的例子:每当有人提交时,我希望Hudson运行任意shell脚本。在我的例子中,shell脚本完成了整个构建,但它可以做任何事情。关键是还没有必要将代码拉到工作区中。最终我们可以摆脱这个脚本,但现在更容易利用现有的生产构建脚本。作业执行使用的代码应该来自哪里?代码已经在那里,由shell脚本构建。一个更清楚的例子:每当有人提交时,我希望Hudson运行任意shell脚本。在我的例子中,shell脚本完成了整个构建,但它可以做任何事情。关键是还没有必要将代码拉到工作区中。最终我们可以摆脱这个脚本,但现在只利用现有的生产构建脚本更容易。Hudson不可能检查SCM的更新,然后不提取源代码。@Peter-不是这样,Hudson作业可以运行任何shell命令,根本不需要对源代码执行任何操作。您可以从提交后钩子触发任何Hudson作业。这将涉及更改SVN提交钩子,这是我在开发我们的CI服务器时希望避免的侵入性操作。这个问题专门询问Hudson自己检测更改的情况(没有其他应用程序像提交后那样将其倾斜到应该位置)因此,检查存储库,然后不轮询源根本不是一个选项。因此,哈德逊不可能检查SVN,但不提取源。因此,我完全支持您实现它的方法。Hudson不可能检查SCM的更新,然后不提取源代码。@Peter-不是这样,Hudson作业可以运行任何shell命令,并且根本不需要对源代码执行任何操作。您可以从提交后钩子触发任何Hudson作业。这将涉及更改SVN提交钩子,这是我在开发我们的CI服务器时希望避免的侵入性操作。这个问题专门询问Hudson自己检测更改的情况(没有其他应用程序像提交后那样将其倾斜到应该位置)因此,检查存储库,然后不轮询源根本不是一个选项。因此,哈德逊不可能检查SVN,但不提取源。因此,我完全支持你实施它的方式。