温馨提示×

Ubuntu Jenkins怎样配置构建触发器

小樊
45
2025-11-02 12:54:06
栏目: 智能运维

Ubuntu Jenkins配置构建触发器指南

在Ubuntu系统上配置Jenkins构建触发器,需先确保Jenkins已正确安装并运行(可通过systemctl status jenkins验证服务状态)。以下是常用构建触发器的详细配置步骤及说明:

一、前置准备

  1. 安装Jenkins
    若未安装Jenkins,可通过以下命令完成安装(需提前安装Java 11+):

    sudo apt update
    sudo apt install openjdk-11-jdk
    wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt update
    sudo apt install jenkins
    sudo systemctl start jenkins
    sudo systemctl enable jenkins
    
  2. 登录Jenkins
    打开浏览器访问http://<Ubuntu服务器IP>:8080,输入默认管理员账号(admin)及初始密码(通过sudo cat /var/lib/jenkins/secrets/initialAdminPassword获取)登录。

二、常见构建触发器配置

1. 触发远程构建(Remote Build)

适用场景:通过脚本、CI/CD工具或其他系统远程触发Jenkins构建。
配置步骤

  • 进入目标Job配置页面,找到“Build Triggers”部分。
  • 勾选Trigger builds remotely (e.g., from scripts)
  • 设置Authentication Token(自定义令牌,用于验证请求合法性,如my-build-token)。
  • 保存配置后,通过以下URL触发构建(替换<Jenkins_URL><Job_Name><TOKEN>):
    http://<Jenkins_URL>/job/<Job_Name>/build?token=<TOKEN>
    
    例如:http://localhost:8080/job/my-job/build?token=my-build-token
    可使用curlwget命令测试:
    curl -X POST "http://localhost:8080/job/my-job/build?token=my-build-token"
    

2. 其他工程构建后触发(Build after other projects are built)

适用场景:当依赖的前置Job构建完成(成功/失败/稳定)后,自动触发当前Job。
配置步骤

  • 进入目标Job配置页面,找到“Build Triggers”部分。
  • 勾选Build after other projects are built
  • 在“Projects to watch”输入框中填写前置Job名称(如frontend-build),多个Job用逗号分隔。
  • 在“Trigger only if build is stable”选项中选择触发条件:
    • 勾选:仅当前置Job构建成功时触发;
    • 不勾选:当前置Job构建稳定或不稳定时均触发。
  • 保存配置。

3. 定时构建(Build periodically)

适用场景:按固定时间间隔自动触发构建(如每天凌晨2点、每15分钟一次)。
配置步骤

  • 进入目标Job配置页面,找到“Build Triggers”部分。
  • 勾选Build periodically
  • 在“Schedule”输入框中填写Cron表达式(定义构建时间规则)。常见示例:
    • H/15 * * * *:每15分钟触发一次(H表示随机分钟,避免多台机器同时构建);
    • 0 0 * * *:每天0点触发一次;
    • 0 9-17/2 * * 1-5:工作日(周一至周五)9点至17点之间,每2小时触发一次(如9:00、11:00、13:00等);
    • 0 0 1,15 * *:每月1号和15号0点触发一次。
  • 点击“Schedule”旁的**?**图标可查看Cron表达式语法说明。
  • 保存配置。

4. 轮询SCM(Poll SCM)

适用场景:定期检查代码仓库(Git/SVN)是否有变更,若有变更则触发构建(注意:频繁轮询会增加系统开销,建议优先使用Webhook)。
配置步骤

  • 进入目标Job配置页面,找到“Build Triggers”部分。
  • 勾选Poll SCM
  • 在“Schedule”输入框中填写Cron表达式(与定时构建语法一致,如H/5 * * * *表示每5分钟检查一次)。
  • 保存配置。
  • 注意:需提前在“Source Code Management”部分配置代码仓库(如Git),否则轮询无意义。

5. 基于Webhook的事件触发(推荐)

适用场景:当代码仓库发生推送(Push)、拉取请求(PR)等事件时,自动触发Jenkins构建(实时性强,无需频繁轮询)。
以GitHub为例的配置步骤

  • 步骤1:获取GitHub Token
    登录GitHub,进入Settings → Developer settings → Personal access tokens,点击“Generate new token”,勾选repo(仓库权限)、admin:repo_hook(Webhook管理权限),生成Token并保存(如ghp_1234567890abcdef)。

  • 步骤2:配置Jenkins GitHub插件
    进入Jenkins“Manage Jenkins → Manage Plugins”,搜索并安装GitHub Plugin
    进入Jenkins“Manage Jenkins → Configure System”,找到“GitHub” section,点击“Add GitHub Server”,输入API URL(https://api.github.com),选择“Secret Text”类型,填写GitHub Token,点击“确定”。

  • 步骤3:配置Job触发器
    进入目标Job配置页面,找到“Build Triggers”部分。
    勾选GitHub hook trigger for GITScm polling(启用Webhook触发)。
    保存配置。

  • 步骤4:配置GitHub Webhook
    进入GitHub代码仓库,点击Settings → Webhooks → Add webhook,填写:

    • Payload URL:http://<Jenkins_URL>/github-webhook/(Jenkins GitHub插件提供的默认路径);
    • Content type:application/json
    • Secret:可选(与Jenkins中的GitHub Token一致,增强安全性);
    • 选择“Just the push event”(仅推送事件触发)或根据需求选择其他事件;
      点击“Add webhook”。

    至此,当仓库发生推送时,GitHub会向Jenkins发送POST请求,自动触发构建。

三、测试构建触发器

  • 远程构建:通过上述URL发送请求,查看Jenkins“Build History”中是否有新构建记录。
  • 其他工程触发:触发前置Job构建,观察目标Job是否按条件启动。
  • 定时/轮询构建:等待设定时间或修改代码仓库内容,查看构建是否自动触发。
  • Webhook触发:向代码仓库推送代码,查看Jenkins是否收到Webhook请求并启动构建(可在GitHub Webhook页面查看“Recent Deliveries”)。

通过以上配置,可根据项目需求选择合适的构建触发器,实现Jenkins自动化构建。需注意:Webhook触发比轮询SCM更高效,建议优先使用;远程构建需做好权限控制,避免未授权访问。

0