微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在代码提交到 Azure 存储库时触发 Jenkins 作业

如何解决在代码提交到 Azure 存储库时触发 Jenkins 作业

我的 localhost:8080 上有一个 Jenkins 作业正在运行。我想在 Azure 存储库 (Azure DevOps) 上有提交时自动触发此作业。

关于如何实现这一目标的任何建议? 谢谢

解决方法

由于 Jenkins 作业在您的 localhost:8080 上运行。您需要在 jenkin 服务器可以与之通信的本地机器上创建您的 self-hosted agents。然后,您需要创建一个在 Azure 存储库提交时触发的 azure 管道,并在您的自托管代理上运行此 azure 管道。您可以查看以下解决方法:

  • 在 Jenkins 上启用 Trigger builds remotely

    转到 jenkins 管道配置页面的构建触发器选项卡--> 然后检查远程触发器构建--> 指定令牌(将在 URL 中使用)

  • 定义一个秘密变量来在 azure devops 管道中托管您的 jenkins 密码(例如密码):

  • 在您的 azure devops 管道中添加一个 bash 任务以运行以下 curl 命令

    #token must be the same with the token you entered in above step
      curl -u $(username):$(password) http://localhost:8080/job/myproject/build?token=anytoken 
    
  • 将您的自托管代理池定位为在自托管代理上运行您的 azure devops 管道。

还有另一种使用 Jenkins queue job 任务的解决方法。

  • 在您的 Jenkins 服务器中创建 API 令牌。

    转到您的 jenkin 帐户配置页面。创建 API 令牌。

  • 在 azure devops 管道中添加 Jenkins 队列作业任务

  • 点击Manage link创建一个jenkins service connection-->在新打开的页面-->创建服务连接-->选择Jenkins-->下一步

    输入所需信息。注意:url 是您本地的 jenkin 服务器。 username 是您在 jenkin 服务器上的用户帐户,Password 是您在上述步骤中生成的 API Token。

另一种解决方法是在 jenkins 作业上配置 Poll SCM 构建触发器。这样 jenkin 服务器会定期轮询源代码并在有新提交时将作业排队。

有关详细信息,请参阅 this thread

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?