似乎有很多示例可以轮询 GitHub,但我如何轮询 Docker Hub 并基于此触发构建?
我在 Docker Hub 中为我的自动构建设置了一个 webhook,但我看不到如何在 Jenkins 中轮询它。
似乎有这个 Jenkins 插件:https ://wiki.jenkins-ci.org/display/JENKINS/DockerHub+Plugin
但是,据我了解,自从 Docker Hub 上的 API 更改以来,该插件已被破坏。
更新:
似乎答案是使用 Build Triggers 下的 Trigger Builds Remotely 选项,但是由于匿名没有构建权限而失败。然后我切换到使用这个插件:https ://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin
所以 URL 变成了这样:https ://jenkinsserver.com/buildByToken/build?job=test&token=test
如果我通过浏览器(甚至隐身)发布到该 URL,但不使用 cURL,则此方法有效。我得到:
$ curl -X POST https://jenkinsserver.com/buildByToken/build?job=test&token=test
<html><head><meta http-equiv='refresh' content='1;url=/securityRealm/commenceLogin?from=%2FbuildByToken%2Fbuild%3Fjob%3Dtest'/><script>window.location.replace('/securityRealm/commenceLogin?from=%2FbuildByToken%2Fbuild%3Fjob%3Dtest');</script></head><body style='background-color:white; color:white;'>
Authentication required
<!--
You are authenticated as: anonymous
Groups that you are in:
Permission you need to have (but didn't): hudson.model.Hudson.Read
... which is implied by: hudson.security.Permission.GenericRead
... which is implied by: hudson.model.Hudson.Administer
-->
</body></html>
但是,如果我这样做,我可以通过 cURL 让它工作:
curl -X POST https://user:token@jenkinsserver.com/buildByToken/build?job=test&token=test
但是,Docker Hub 不喜欢那个 URL……
我在这里想念什么?我什至走在正确的轨道上吗?如果你是从 Docker Hub webhook 触发和 Jenkins 任务的人,你是怎么做的?