如何解决在代码提交到 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 举报,一经查实,本站将立刻删除。