当前位置:   article > 正文

Jenkins+github配置构建触发器_jenkins+github 触发构建

jenkins+github 触发构建

安装Jenkins

参考地址: https://blog.csdn.net/qq_38661798/article/details/84375765
Jenkins必须要搭建在公有云上,需要能通过url或者ip地址直接访问,才能成功配置webhook。


docker安装jenkins

参考: 官方文档安装Jenkins

# jenkinsci/blueocean 是LTS版本
docker run --name jenkins -u root -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock --restart=always jenkinsci/blueocean
  • 1
  • 2

打开http://ip:8080即可访问Jenkins


安装插件

安装jenkins插件前,先修改Jenkins的插件源为国内源.

  • 安装Deploy to container插件;
  • 安装流水线插件workflow-aggregator;
  • 安装Git Parameter;
  • Git 拉取代码
  • Pipeline 流水线
  • kubernetes 连接k8s动态创建Slave代理
  • Config File Provider 存储配置文件
  • Extended Choice Parameter 扩展选择框参数,支持多选

在Jenkins上指定git绝对路径

在Jenkins的全局工具配置中,指定git的绝对路径
在这里插入图片描述


使用Poll SCM定时检查代码库是否有更新-构建触发器

# 每分钟检查一次(5个星)
* * * * *

# 其他时间可以根据提示配置
  • 1
  • 2
  • 3
  • 4

配置构建指令

构建 ->Execute shell–中添加构建指令

# 添加构建指令
echo "building ......"
  • 1
  • 2

配置完成后点击保存.


使用webhook自动构建

必须Jenkins有公网ip地址且可被访问

参考: https://blog.csdn.net/qq_21768483/article/details/80177920

JenkinsGithub插件的配置中,点击高级按钮,启用Hook URL,并将Hook URL复制出来,并保存刚才的设置

在这里插入图片描述

github项目的Settings中点击Webhooks,然后点击Add webhook,在Payload URL中填写Jenkins复制出来的Hook URL

选择事件: 推送事件,只要有comity就会拉取代码
在这里插入图片描述


触发远程构建器

在这里插入图片描述

http://Jenkins的url地址/job/项目名称/build?token=自定义token

访问这个url地址即可远程触发构建。
将这个地址粘贴在github的webhook中,就可以自动触发远程构建


在Jenkins内关闭“防止跨站点请求伪造”

Github访问Jenkins的时候,没有携带请求头,不关闭防止跨站点请求伪造将无法正常访问Jenkins。
在这里插入图片描述

在Jenkins的系统管理-》全局安全配置-》CSRF Protection中,取消勾选防止跨站点请求伪造,然后点击保存
在这里插入图片描述


不关闭“防止跨站点请求伪造”访问Jenkins,需要获取crumb值

在这里插入图片描述
在这里插入图片描述
这时候的webhook需携带验证信息和请求头

# curl模拟访问
curl -X post -v -u admin:admin -H "Jenkins-Crumb:88a12946e078"  http://192.168.70.131:8080/jenkins/job/ProOne/build?token=自定义token

# 携带token访问时的完整的url地址
http://用户名:密码@192.168.70.131:8080/jenkins/crumblssuer/api/xml
  • 1
  • 2
  • 3
  • 4
  • 5

pipeline语法

参考 https://www.jenkins.io/zh/doc/book/pipeline/syntax/#declarative-sections

在这里插入图片描述


pipeline语法示例

// def 定义变量
def registry = "192.168.0.100"  

pipeline{
    // 节点选择
    agent any
    // stages-阶段集--分为下面3个步骤
    stages {
        // Build阶段
        stage(Build){
            // Build的具体步骤
            steps{
                // 调用的命令都是shell命令
                echo 'build......'
            }
        }
        // Test阶段
        stage("Test"){
            // Test的具体步骤
            steps{
                echo 'test......'
            }
        }
        // Deploy阶段
        stage(Deploy){
            // Deploy的实际步骤
            steps{
                echo 'deploy......'
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/952092
推荐阅读
相关标签
  

闽ICP备14008679号