本步骤介绍了如何在 Jenkins 中通过创建新任务、配置任务参数来构建 slave pod。
说明
不同 Jenkins 版本使用 UI 上存在差异。您可以根据业务需要进行选择。
创建新任务
1. 登录 Jenkins 后台,单击新建任务或创建一个新任务。如下图所示:


2. 在新建任务页,设置任务的基本信息。如下图所示:


输入一个任务名称:自定义,本文以
test
为例。 类型:选择构建一个自由风格的软件项目。
3. 单击确定,进入任务参数配置页。
4. 在任务参数配置页,进行基本信息配置。如下图所示:


描述:自定义填写任务的相关信息,本文以 slave pod test 为例。
参数化构建过程:勾选此项,并选择添加参数 > Git Parameter。
任务参数配置
1. 在打开的 “Git Parameter” 面板中,依次设置以下参数。如下图所示:

主要参数信息如下,其余选项请保持默认设置:

Name:输入
mbranch
,该参数可用于匹配获取分支。 Parameter Type:选择Branch or Tag。
2. 选择添加参数 > Extended Choice Parameter,在打开的 “Extended Choice Parameter” 面板中设置以下参数。如下图所示:

主要参数信息如下,其余选项请保持默认设置:

Name:输入
name
,该参数可用于获取镜像名称。 Basic Parameter Types:选择此项。
Parameter Type:选择Check Boxes。
Value:选择此项,并输入自定义镜像名称,该值将传递给变量
name
,本文以 nginx,php
为例。3. 选择添加参数 > Extended Choice Parameter,在打开的 “Extended Choice Parameter” 面板中设置以下参数。如下图所示:

主要参数信息如下,其余选项请保持默认设置:

Name:输入
version
,该参数用于获取镜像版本变量。 Basic Parameter Types:选择此项。
Parameter Type:选择Text Box ,表示以文本形式获取镜像值,并传递给变量
version
。4. 勾选限制项目的运行节点,标签表达式填写 配置 slave pod 模板 步骤中已设置的 Pod 标签 
jnlp-agent
。如下图所示:

源码管理配置
在“源码管理”模块中,选择Git,并进行以下信息配置。如下图所示:


Repositories:
Repository URL:输入您的 gitlab 地址,例如
https://gitlab.com/user-name/demo.git
。 Credentials:选择已在 添加 gitlab 认证 步骤中创建的认证凭据。
Branches to build:
指定分支(为空时代表any):输入
$mbranch
,用于动态获取分支,其值与 Git Parameter 参数中定义的 mbranch
值对应。Shell 打包脚本配置
1. 在“构建”模块中,选择增加构建步骤 > 执行 shell。如下图所示:


2. 将以下脚本内容复制粘贴至“命令”输入框中,并单击保存。
注意
脚本中 gitlab 地址、TKE 镜像地址、镜像仓库用户名及密码等信息为示例使用,请根据实际需求进行更换。
请确保基于源代码 Docker build 构建打包处,工作目录
/home/Jenkins/agent
需与“容器列表”中的 Container Template 工作目录一致。echo " gitlab 地址为:https://gitlab.com/[user]/[project-name]].git"echo "选择的分支(镜像)为:"$mbranch,"设置的分支(镜像)版本为:"$versionecho " TKE 镜像地址:hkccr.ccs.tencentyun.com/[namespace]/[ImageName]"echo "1.登录 TKE 镜像仓库"docker login --username=[username] -p [password] hkccr.ccs.tencentyun.comecho "2.基于源代码 Docker build 构建打包:"cd /home/Jenkins/agent/workspace/[project-name] && docker build -t $name:$version .echo "3.Docker镜像上传至TKE仓库:"docker tag $name:$version hkccr.ccs.tencentyun.com/[namespace]/[ImageName]:$name-$versiondocker push hkccr.ccs.tencentyun.com/[namespace]/[ImageName]:$name-$version
该脚本提供以下功能:
获取选择的分支、镜像名称及镜像版本。
将与代码合并构建后的 docker 镜像推送至 TKE 镜像仓库。