我是 Jenkins 的菜鸟,我有一个 Jenkins 服务器,它运行一个 ansible playbook 来部署应用程序。
我希望能够让 Jenkins 运行一个 ansible 剧本,该剧本在打开 GitHub 拉取请求时运行应用程序 python 测试。然后,我希望测试结果显示在 Github 存储库中,类似于 Travis 的做法。有没有办法用 Jenkins 实现这一目标?谢谢
这可以通过 Jenkins 实现。此任务有 3 个主要步骤:
- 使用 Jenkins GitHub 插件来触发构建。
- 使用 Jenkins Ansible 插件在构建过程中执行您的 ansible 剧本。
- 使用结果更新 GitHub 存储库。这部分有点复杂,因为我不相信有 Jenkins 插件。这可以通过在 Jenkins 构建中添加一个构建后任务来完成,该任务包含一个使用 GitHub API 的脚本,以根据您的喜好使用您的结果更新存储库。
如果 Jenkins GitHub 插件不允许在拉取请求 webhook 上触发,则必须实现自己的监听GitHub 的 webhooks API pull_request
事件,然后通过 URL 远程启动 Jenkins 构建。