Jenkins流水线自动拉去代码的实践

2022-06-17 08:59:08 浏览数 (1)

配置 agent 公钥到 Gitlab

我们期望在 agent 上执行代码拉取的操作。所以需要首先将 agent 上的公钥配置到 Gitlab 个人设置的 SSH Keys 中。

代码语言:javascript复制
agent上公钥的路径:/root/.ssh/id_rsa.pub

Gitlab 上的 SSh Keys 配置:

配置 agent 私钥到 jenkins

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

代码语言:javascript复制
agent上公钥的路径:/root/.ssh/id_rsa

jenkins 中的全局凭据配置:

设计 Pipline Script

代码语言:javascript复制
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']]])
                    }
               }
        }
    }
}

解释:

  1. agent:指定项目运行的节点
  2. dir:指定代码的拉取路径
  3. checkout:拉取代码命令
  4. branch:代码分支名称
  5. credentialsId:凭据的ID(前面创建凭据的时候可自定义)
  6. url:代码仓库的地址

片段生成器

也许有同学会好奇,pipline 的脚本中有很多的格式和关键字,不可能全部记住,这个时候怎么办呢?

jenkins 为用户提供了一个很好的工具,pipline 代码片段生成器,你只需要了解语法的整体结构,具体的操作都可以通过片段生成器进行生成。

下面我就介绍下上面的指定分支拉取代码的 pipline 脚本生成过程。

点击流水线脚本编写框下方的流水线语法:

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

然后,复制脚本到流水线项目中的脚本编辑器即可。通过简单的修改和整理就可以执行构建了。

构建结果展示

此测试项目只定义了一个步骤,实际使用中,你可以根据需要定义多个不同的步骤来进行流水线的编排和设计。

Q&A

有的同学可能在执行完 pipline 后并没有 Full State View 的展示,此时你需要安装如下几个插件即可。

代码语言:javascript复制
momentjs.hpi
handlebars.hpi
pipeline-rest-api.hpi
pipeline-stage-view.hpi

插件下载地址

代码语言:javascript复制
https://plugins.jenkins.io

0 人点赞