配置 agent 公钥到 Gitlab
我们期望在 agent 上执行代码拉取的操作。所以需要首先将 agent 上的公钥配置到 Gitlab 个人设置的 SSH Keys 中。
agent上公钥的路径:/root/.ssh/id_rsa.pub
Gitlab 上的 SSh Keys 配置:

配置 agent 私钥到 jenkins
agent 携带私钥从 Gitlab 上拉取代码,所以需要首先将 agent 上的私钥配置到 jenkins 的全局凭据中以供 pipline 项目使用。
agent上公钥的路径:/root/.ssh/id_rsa
jenkins 中的全局凭据配置:

设计 Pipline Script
pipeline {
agent{ label 'pipline'}
stages {
stage('Checkout') {
steps {
dir('/home/pipline/code/'){
checkout([$class: 'GitSCM', branches: [[name: 'dev']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanBeforeCheckout', deleteUntrackedNestedRepositories: true]], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'Gitlab_AccessKey', url: 'ssh://git@gitlab.xxx.com.cn:2222/xxx-dev/xxx.git']]])
}
}
}
}
}
解释:
agent:指定项目运行的节点dir:指定代码的拉取路径checkout:拉取代码命令branch:代码分支名称credentialsId:凭据的ID(前面创建凭据的时候可自定义)url:代码仓库的地址
片段生成器
也许有同学会好奇,pipline 的脚本中有很多的格式和关键字,不可能全部记住,这个时候怎么办呢?
jenkins 为用户提供了一个很好的工具,pipline 代码片段生成器,你只需要了解语法的整体结构,具体的操作都可以通过片段生成器进行生成。
下面我就介绍下上面的指定分支拉取代码的 pipline 脚本生成过程。
点击流水线脚本编写框下方的流水线语法:

配置代码仓库,凭据等信息,点击生成流水线脚本:

然后,复制脚本到流水线项目中的脚本编辑器即可。通过简单的修改和整理就可以执行构建了。
构建结果展示
此测试项目只定义了一个步骤,实际使用中,你可以根据需要定义多个不同的步骤来进行流水线的编排和设计。
Q&A
有的同学可能在执行完 pipline 后并没有 Full State View 的展示,此时你需要安装如下几个插件即可。
momentjs.hpi
handlebars.hpi
pipeline-rest-api.hpi
pipeline-stage-view.hpi
插件下载地址
https://plugins.jenkins.io