❝
公众号:自动化测试实战
如果你在每次merge时希望执行pipeline,且Pipeline执行结果和merge结果都显示在gitlab里,如下图:
假设你已经装好了Jenkins和gitlab。
安装Jenkins插件
需要安装的插件:
- git
- pipeline
安装步骤:
- 点击左侧菜单栏的“Manage Jenkins”(管理Jenkins)。
- 选择“Manage Plugins”(管理插件)。
- 在“Available”(可选)标签下搜索上述插件,并进行安装
在GitLab中配置Webhooks
- 进入GitLab项目设置:
打开你想要集成的GitLab项目,点击左侧菜单的“Settings”(设置) -> “Webhooks”(Webhook)。
- 添加新的Webhook:
- URL:填写你的Jenkins服务器的Webhook URL,通常格式为 http://<JENKINS_URL>/project/<JOB_NAME>。
- Secret Token:可选,用于安全验证,需在Jenkins中对应配置。
- 触发事件:选择“Push events”(Push事件)和其他需要触发Pipeline的事件(如Merge Request events)。
完成后点击“Add Webhook”添加。
在Jenkins中创建和配置Pipeline作业
- 创建新的Pipeline项目:
- 点击Jenkins主页的“New Item”(新建任务)。
- 输入项目名称,选择“Pipeline”,然后点击“OK”。
- 配置源码管理:
- 在项目配置页面,找到“Pipeline”部分。
- 选择“Pipeline script from SCM”(从源码管理中获取Pipeline脚本)。
- SCM选择“Git”。
- 填写你的GitLab仓库URL和凭证(如果仓库是私有的,需提供认证信息)。
- 指定Pipeline脚本位置:
通常,Pipeline脚本(Jenkinsfile)放在仓库根目录。
在“Script Path”(脚本路径)中填写 Jenkinsfile。如果要把Pipeline脚本写在Jenkins pipeline编辑器而非Jenkinsfile里,可以忽略这步。
- 配置GitLab触发器:
- 在“Build Triggers”(构建触发器)部分,选择“Build when a change is pushed to GitLab”(当有变更推送到GitLab时构建)。这里可根据自己的需要进行选择
- 如果使用Secret Token,在Jenkins的“Configure”页面中相应位置填写与GitLab Webhook中一致的Token。
编写你的pipeline脚本
比如我的脚本如下:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://gitlab.com/your-repo.git', branch: 'main'
}
}
stage('Build') {
steps {
// 你的构建步骤,如Maven构建
sh 'mvn clean install'
}
}
stage('Test') {
steps {
// 运行测试
sh 'mvn test'
}
}
stage('Deploy') {
steps {
// 部署步骤
sh 'deploy.sh'
}
}
}
post {
success {
updateGitlabCommitStatus name: 'build', state: 'success'
}
failure {
updateGitlabCommitStatus name: 'build', state: 'failed'
}
}
}
在GitLab中配置Jenkins CI/CD集成
- 生成Jenkins API Token:
- 在Jenkins中,进入你的用户配置页面(点击右上角用户名 -> “Configure”)。
- 在“API Token”部分,生成一个新的Token,用于GitLab与Jenkins的认证。
- 【这步可省略,因为已经添加了webhook】在GitLab中添加Jenkins的访问凭证:
-
进入GitLab项目的“Settings”(设置) -> “CI/CD” -> “Variables”(变量)。
-
添加如下变量:
- JENKINS_URL:你的Jenkins服务器地址。
- JENKINS_USER:Jenkins用户名。
- JENKINS_API_TOKEN:之前生成的Jenkins API Token。
这些变量可以在Jenkinsfile中引用,用于与Jenkins交互。
触发Pipeline并查看执行记录
- 提交变更触发Pipeline:
推送代码到GitLab仓库,符合Webhook触发条件,Jenkins会自动接收并开始执行Pipeline。
- 查看Jenkins中的构建日志:
在Jenkins项目页面,可以看到Pipeline的执行情况和详细日志。
- 在GitLab中查看Pipeline状态:
回到GitLab项目,进入“CI/CD” -> “Pipelines”,可以看到对应的Pipeline状态(成功或失败),以及关联的Jenkins构建信息。
通过以上步骤,就可以在Jenkins中执行Pipeline,并将执行记录同步显示在GitLab的Pipelines记录中了。