Jenkins - 触发构建
1 - Jenkins远程构建
可以通过以POST方式调用API来触发构建任务的执行
http://<IP>:<PORT>/job/<JOB NAME>/build?token=<TOKEN>&cause=<CAUSE>
1.1 - 创建用户token
1.2 - 配置任务的触发器
在任务的“构建触发器”部分“触发远程构建 (例如,使用脚本)”添加令牌
1.3 - 远程触发构建
在浏览器中访问如下URL
http://192.168.16.200:8080/job/test/build?token=RemoteTesting&cause=testtrigger
浏览器不会有反应,但Jenkins后台将收到请求并开始构建
1.4 - 查看任务执行情况
2 - GitLab触发构建
2.1 下载插件
当GitLab分支有代码提交或者合并请求时,通过Webhook配置可以自动触发执行对应的Jenkins任务。
需要在Jenkins上安装如下插件:https://plugins.jenkins.io/gitlab-plugin
2.2 Jenkins安全配置
系统管理---》全局安全配置,取消“防止跨站点请求伪造”
2.3 Jenkins任务配置
配置源码管理
分支为空,表示默认任何代码改动的分支都会拉取。
配置“构建触发器”
注意:
- GitLab webhook URL,要在GitLab中配置。
- 点击Secret token部分的Generate按钮,生成令牌,这个令牌要在GitLab中配置。
2.4 GitLab项目配置
在project---》Settings---》Integrations---》配置Jenkins生成的GitLab webhook URL和Token,并指定触发条件。
2.5 测试GitLab Webhook
在GitALab的项目添加webhook 成功后,可以通过提供的Test功能测试配置是否成功。
选择Test按钮下的操作类型
如果配置成功,那么Test的结果会显示“Hook executed successfully: HTTP 200”
Jenkins任务会被触发执行
3 - 其他工程构建后触发
4 - 问题处理
GitLab通过webhook向Jenkins发送请求,报错“Requests to the local network are not allowed”
问题分析
Gitlab10.6 版本以后不允许向本地网络发送webhook请求,如果想向本地网络发送webhook请求,则需要使用管理员帐号登录做指定配置。
处理方法
Admin area---》Settings---》OutBound Request,勾选“Allow requests to the local network from hooks and services”---》保存更改。
相关文章
- jenkins+maven+git+ 邮件自动转发 持续化集成 图文教程
- 测试平台使用git+Jenkins进行持续集成
- Jenkins - Maven源码构建
- Jenkins - 参数化构建
- Jenkins - 以Docker方式启动Jenkins
- jenkins:配置密钥时报错的解决:Failed to add SSH key. Message invalid privatekey(Jenkins 2.257)
- Jenkins构建集成部署
- Jenkins - 触发构建
- Jenkins - 分布式构建
- Jenkins - 参数化构建
- Jenkins - 构建项目
- jenkins 持续集成和交付 —— 参数化构建(八)
- linux(centos8):安装Jenkins持续集成工具(java 14 / jenkins 2.257)
- Jenkins 基础 04 用户管理
- Jenkins 流水线语法 02 片段生成器和声明式语法生成器
- 【完整示例】采用jenkins pipeline实现自动构建并部署至k8s
- Jenkins的卸载
- Jenkins配置jdk(启动报错:Starting Jenkins bash: /usr/bin/java: No such file or directory)
- 使用阿里云容器服务Jenkins实现持续集成和Docker镜像构建(updated on 2017.3.3)
- 使用阿里云容器服务Jenkins实现持续集成和Docker镜像构建(updated on 2017.3.3)
- Jenkins 无法下载插件的解决办法
- Jenkins配置Gitlab自动触发构建
- Jenkins构建Maven项目
- Jenkins-Slave使用Centos安装的OpenJDK
- Jenkins 使用 AD域 登陆
- Jenkins pipeline 拉取,打包,docker 脚本