- 安装插件
https://github.com/jenkinsci/gitlab-api-plugin #GitLab API Plugin
https://github.com/jenkinsci/gitlab-branch-source-plugin #GitLab Branch Source Plugin
https://github.com/jenkinsci/basic-branch-build-strategies-plugin #Basic Branch Build Strategies
https://plugins.jenkins.io/gitlab-oauth/ #GitLab Authentication
https://plugins.jenkins.io/permissive-script-security/ #Permissive Script Security,这个只对sandbox中的脚本有效,非sandbox是不行的 - 配置Gitlab Server
- 配置Jenkins
- 创建Jenkins流水线
- 创建Folder Organization类型的Job
如图
这个类型的job会自动扫描指定用户或分组下的gitlab项目
在owner中输入用户名或分组名(可以指定子组)
在行为列表下面添加以下新的行为
discover subgroup projects 支持扫描子组
discover tags 支持扫描tag
discover branches 发现分支
advanced clone behaviours 自定义clone选项,用于clone时支持tags
然后在build strategies里面添加(用于自动构建tag,默认不会)
change requests
regular branches
tags
- 创建Folder Organization类型的Job
- 如果只针对单个项目创建流水线可以创建Multibranch Pipeline类型的项目
其它具体的细节可以参考github上的README.md
其它有用的插件:
https://plugins.jenkins.io/pipeline-utility-steps/ Pipeline Utility Steps 常用steps集合
https://plugins.jenkins.io/inline-pipeline/ Multibranch Pipeline Inline Definition 支持内联Jenkinsfile
https://plugins.jenkins.io/pipeline-multibranch-defaults/ Multibranch with defaults 支持不同分支和项目共用Jenkinsfile
https://plugins.jenkins.io/config-file-provider/ Config File Provider 用于配置文件
存储
https://plugins.jenkins.io/permissive-script-security/ Permissive Script Security
注意:
gitlab连接中配置的用户必须是git项目的成员,否则即使能拉取代码也无法同步jenkins的构建状态到gitlab
用curl调用gitlab api(测试access token及api是否有效)
curl –request POST \
–header “PRIVATE-TOKEN: glpat-1234567890” \
–url “https://git.hetao.me/api/v4/projects/test%2Ftest/statuses/3212877acf1bb58f05818c95cd981ef243e935d8?state=success”