一尘不染

连接到svn信息库之前,我们可以在jenkins中使用隧道吗?

jenkins

在访问我的SVN存储库之前,我需要先创建一个tunnel像这样的文件:

ssh -L 9898:some_server.com:9898 user@another_server.com

在那之后,我能够在端口访问存储库9898我的localhost。在创建Jenkins作业时,我可以将SVN网址提供为localhost,并且Jenkins能够访问存储库,但是我仍然必须在服务器上手动创建隧道。有什么方法可以让Jenkins自动化,以便如果对隧道的访问失败,则可以进行隧道化,然后重试?

我在用 Jenkins 1.487


阅读 335

收藏
2020-07-25

共1个答案

一尘不染

您需要像pre-scm-buildstep这样的插件

这使您可以在SVN检出之前执行构建步骤。
使用此功能,您可以配置一个步骤,该步骤将在SVN检出开始之前为您打开隧道。

但是,我怀疑SVN轮询将在这种情况下工作。

更新: 在OP问题之后,这是另一个可能的解决方案:
https :
//wiki.jenkins-
ci.org/display/JENKINS/ScriptTrigger+Plugin
我本人并没有使用它,但是它允许执行自定义的shell脚本而不是执行定期投票。您可以使用此自定义脚本首先建立隧道,然后轮询SVN更改。但是,您必须编写自己的脚本才能进行实际的SVN轮询。就像检查工作空间修订(svn info <LocalCheckOut>|grep Revision)并对照存储库(svn info <URL>|grep Revision)进行检查一样简单。该插件可让您以cron格式安排轮询频率。

另一种懒惰的方式是使用此插件,建立隧道,进行SVN更新(是否有更改),然后由工作来构建它。然后,您可以执行常规的 构建操作 ,该 操作
将在实际构建步骤之前检测实际上是否有新的签出。

2020-07-25