我知道這是一個老問題,但這裏是我的設置使用declarative pipelines上GitLab CE 12年8月13日和詹金斯2.46.2這樣做,和Gitlab插件1.4.5和Gitlab鉤子插件1.4.2。這些步驟也可能適用於最新版本。
- 兩個單獨的管道作業
- 第一任務是專門爲MR建立
- 第二個是用於主分支/回購其中MR被合併到
- 兩種作業有生成觸發器「生成當更改被推送到GitLab」啓用
- MR作業有foll由於事件已啓用
- 主作業不僅具有推送事件觸發有效
- 評論(以及一些評論),但也有在高級選項來過濾分支(我只用主的名字)
然後,管道腳本這個樣子 MR
checkout ([
$class: 'GitSCM',
branches: [[name: "${env.gitlabSourceNamespace}/${env.gitlabSourceBranch}"]],
extensions: [
[$class: 'PruneStaleBranch'],
[$class: 'CleanCheckout'],
[
$class: 'PreBuildMerge',
options: [
fastForwardMode: 'NO_FF',
mergeRemote: env.gitlabTargetNamespace,
mergeTarget: env.gitlabTargetBranch
]
]
],
userRemoteConfigs: [
[
name: env.gitlabTargetNamespace,
url: env.gitlabTargetRepoSshURL
],
[
name: env.gitlabSourceNamespace,
url: env.gitlabSourceRepoSshURL
]
]
])
主
checkout([
$class: 'GitSCM',
branches: [[name: '*/master']],
extensions: [
[$class: 'PruneStaleBranch'],
[$class: 'CleanCheckout']],
userRemoteConfigs: [[url: '<my-git-url>']]])
這給了我兩份工作。 MR作業依賴於GitLab插件來定義檢出,合併和構建的源和目標回購和分支。主工作只會建立主倉庫。
最後一步是在GitLab中配置webhooks以進行回購。當您在GitLab一個網絡掛接,它會要求提供以下信息:
- 端點URL(這是在詹金斯任務中發現了下生成觸發部分)
- 活動(符合從詹金斯作業到事件這裏)
- SSL驗證(取決於你和你的網絡配置)
而且你應該做的事!
你使用的是GitLab社區版還是企業版?如果您使用的是Enterprise Edition,則可以按照以下文檔進行操作: http://docs.gitlab.com/ee/integration/jenkins.html它具有關於配置Jenkins CI服務的說明。不幸的是,Community Edition沒有這項服務。 –