本文共 1932 字,大约阅读时间需要 6 分钟。
Jenkins 中的任务自动化不仅仅是构建自动化,还可以通过触发条件来实现更智能的流程。Jenkins 的触发条件主要分为两种:时间触发和事件触发。
时间触发是最常见的触发方式,主要有两种实现方式:
定时构建
Jenkins 会根据预设的时间计划自动启动构建任务。这种方式适合需要周期性构建的场景,比如每天晚上进行代码编译和测试。轮询 SCM
Jenkins 会在指定的时间间隔内主动检查代码仓库是否有更新。如果有任何代码变更(如提交、拉取或更新操作),就会自动触发构建任务。这种方式适合需要及时反映代码变更的开发环境。事件触发则更灵活,主要有以下几种实现方式:
由其他工程构建后触发
例如,某个工程完成打包和部署后,可以设置另一个工程在其成功后自动启动构建任务。这种方式常用于流水线构建中。GitHub Hook Trigger for GITScm Polling
这是一个专用的插件,用于接收 GitHub 的推送事件(push event)通知。当代码仓库发生变更时,GitHub 会通过HTTP请求通知Jenkins,从而触发相应的构建任务。触发远程构建(如通过脚本)
Jenkins 提供了一个REST API接口,可以通过脚本或其他工具远程触发构建任务。这种方式适合需要动态触发构建的场景。为了实现代码变更自动触发构建的目标,需要对 Jenkins 和 GitHub 进行相应的配置。以下是详细的配置步骤:
为了让 GitHub 能够访问 Jenkins 服务器,需要确保 Jenkins 服务器有一个可用的外网IP地址。可以通过 Ngrok 这种工具来解决这个问题。Ngrok 的主要功能是将局域网内的端口映射到互联网上,方便外部访问。
登录 Ngrok 官网(https://ngrok.com),选择对应的操作系统版本下载 Ngrok 压缩包。例如,选择 Windows 版本下载 ngrok-stable-windows-amd64.zip。
将下载的压缩包解压到指定的目录。例如,可以将其解压到 F:\ngrok-stable-windows-amd64。
登录 Ngrok官网(或使用 GitHub 账号直接登录),获取相应的认证 token。
将解压后的 Ngrok 目录切换到命令提示符下,执行以下命令并替换
ngrok authtoken
在 Ngrok 所在目录下执行以下命令,指定需要暴露的端口(例如 8080,如果 Jenkins 监听这个端口):
ngrok http 8080
注意:运行此命令后,会生成一个新的 Ngrok 访问地址。关机或重启服务器后,需要重新运行该命令,并更新 Jenkins 和 GitHub 中的 webhook配置。
Webhook 是实现代码变更自动触发Jenkins构建的关键环节。以下是配置步骤:
访问 GitHub官网,登录后找到需要监控的仓库。
点击仓库 settings,选择 Webhooks tab,点击 Add Webhooks 按钮。
在 Webhook 配置界面中,填写 Jenkins 服务器的外网IP地址 + "/github-webhook/"。例如:
https://.ngrok.io/github-webhook/
其中,
在 Jenkins中,进入系统设置,找到 GitHub 插件,点击 Advanced...。
在 Jenkins 的系统设置界面,填写 GitHub Webhook 的 POST 地址。确保地址格式为:http://<your-jenkins-url>/github-webhook/,不要忘记末尾的斜杠。
完成以上步骤后,点击页面底部的 Save 按钮完成配置。
通过以上配置,GitHub 会在代码变更时通过 Webhook 通知 Jenkins,触发相应的构建任务。这意味着开发人员只需要提交代码,Jenkins 就能自动完成编译、打包、部署和测试等流程。
转载地址:http://ydbyz.baihongyu.com/