# 图形化任务模板参数说明
以下为图形化流水线任务模板参数说明。
## Git Clone
| 参数 | 说明 |
| -------- | -------------------------------------------------------- |
| 代码仓库 | 填写远程代码仓库的地址 |
| 分支 | 填写想要基于哪个分支的代码构建流水线,默认为 __master__ |
| 凭证 | 对于私有仓库,需要提前[创建凭证](../credential.md)并在使用时选择对应的凭证 |
## Shell
如果要执行 shell 命令,请选择此模板,支持多行。
## 打印消息
如果要在终端输出一些消息,请选择此模板。
## 保存制品
| 参数 | 说明 |
| -------------- | ------------------------------------------------------------ |
| 用于归档的文件 | 使用正则表达式规定期望将文件存储在什么路径下,例如: __module/dist/*/.zip__ ,多个文件请用英文逗号隔开。 |
## 审核
如果添加此步骤,流水线运行至任务将会暂停,创建人和被 @ 的人可以选择继续或终止。
| 参数 | 说明 |
| ---- | ------------------------------------------------------------ |
| 消息 | 流水线运行状态中将会展示此消息,支持在输入 @ + 用户的方式来选择可审核的人。 |
## 通知
在流水线执行过程中使用通知步骤,可以实现发送邮件至指定人员。需要确保已经在 __全局管理__ 配置了邮件服务器,并且当前 Jenkins 可以访问到。
| 类型 | 说明 |
| ------------ | ------------------------------------------------------------ |
| 收件人地址 | 收件人地址,多个邮箱地址通过逗号或者空格进行区分 |
| 主题 | 邮件的标题 |
| 内容 | 邮件内容 |
## 使用凭证
使用凭证组件在图形化编辑中是一个较为特殊的步骤,如果选择开启后,该阶段定义的所有步骤都将会被嵌套在使用凭证步骤中。
| 类型 | 说明 |
| ------------ | ------------------------------------------------------------ |
| 用户名和密码 | 需要填写以下参数:
__用户名变量__ :在流水线构建期间用户名的环境变量的名称。
__密码变量__ :在流水线构建期间密码的环境变量的名称。 |
| 访问令牌 | 需要填写以下参数:
__文本变量__ :在流水线构建期间文本的环境变量的名称。 |
| kubeconfig | 需要填写以下参数:
__kubeconfig 变量__ :在流水线构建期间 kubeconfig 环境变量的名称。 |
## 超时
当前任务的执行时间若超过超时时间,则会中止任务,流水线状态变为 __失败__ 。
| 参数 | 说明 |
| ---- | -------------------------------------- |
| 时间 | 设置超时的时间。 |
| 单位 | 设置时间单位,支持秒、分钟、小时、天 |
## SVN
| 参数 | 说明 |
| --- | --- |
| 代码仓库 | 填写远程的 svn 的地址,例如 `http://svn.apache.org/repos/asf/ant/` |
| 凭证 | 对于私有仓库,需要提前[创建凭证](../credential.md)并在使用时选择对应的凭证 |
## 收集测试报告
收集 JUnit 的测试报告,必须为 __xml__ 格式,支持填写多个地址,用逗号隔开。
| 参数 | 说明 |
| --- | --- |
| 测试报告 | 指定生成的 xml 报告文件的位置,例如 myproject/target/test-reports/*.xml |
## SonarQube 配置
如果您需要使用 SonarQube 来对代码仓库中的代码进行扫描,请选择当前步骤,使用之前请确保您已经集成 SonaQube 实例并绑定到当前工作空间。
| 参数 | 说明 |
| -------------- | ------------------------------------------------------------ |
| SonarQube 实例 | 下来选项中选择当前工作空间绑定的 SonaQube 实例 |
| 代码语言 | 由于不同代码语言对应的 SonaQube 的扫描命令不同,如果 java 语言,请选择 __maven__ ,其他语言则选择 __其他__ |
| 项目 | 本次扫描在 SonaQube 中对应的项目名称 |
| 扫描文件 | 需要扫描代码仓库中文件目录地址 |
## 代码质量门禁
此步骤需要配合 __SonarQube 配置__ 步骤一起使用,定义该步骤后会暂停流水线执行,等待 SonarQube 代码扫描分析完成后返回质量门禁状态,来判断是否终止运行当前流水线。
另外实际使用过程中,需要定义 __超时__ 步骤共同使用,以等待 SonarQube 代码扫描的返回结果,如下:
```groovy
steps {
timeout(time: 1, unit: 'HOURS') {
waitForQualityGate abortPipeline: true
}
}
```
| 参数 | 说明 |
| -------------------------- | ------------------------------------------------------------ |
| 等待检查结果是否暂停流水线 | 支持 true/fasle 两个选项,如果设置为true,当 SonarQube 代码扫描分析完成后返回质量门襟状态为不健康时,将会终止流水线 |
## update-application(系统自定义内置步骤)
通过自定义步骤能力,支持对当前租户下的工作负载的镜像进行更新。
注意:目前该步骤目前需要为目标集群提前创建好凭证,并且在`添加凭证`步骤中使用该凭证,环境变量设置为`KUBECONFIG`才能使用。
| 参数 | 说明 |
| -------------- | ------------------------------------------------------------ |
| 集群 | 选择需要更新应用所在的集群 |
| 命名空间 | 选择需要更新应用所在的命名空间 |
| 集群凭证 | 需要事先创建后 kubeconfig 类型的凭证用于连接集群 |
| 工作负载类型 | 支持 Deployment、StatefulSet 、DaemonSet |
| 工作负载名称 | 选择需要更新的工作负载 |
| 容器名称 | 选择当前负载下的容器信息 |
| 镜像地址/版本 | 选择或输入镜像地址/版本 |
## deploy-application(系统自定义内置步骤)
通过自定义步骤能力,支持应用的部署,前提条件是需要准备一个 git 仓库,并且仓库中包含了应用的清单文件。
注意:目前该步骤目前需要为目标集群提前创建好凭证,并且在`添加凭证`步骤中使用该凭证,环境变量设置为`KUBECONFIG`才能使用。
| 参数 | 说明 |
| -------------- | ------------------------------------------------------------ |
| 集群 | 选择需要更新应用所在的集群 |
| 命名空间 | 选择需要更新应用所在的命名空间 |
| 集群凭证 | 需要事先创建后 kubeconfig 类型的凭证用于连接集群 |
| 清单文件路径 | 应用的清单文件所在代码仓库的绝对路径 |
## docker-build(系统自定义内置步骤)
通过自定义步骤能力,支持镜像的构建与推送。
| 参数 | 说明 |
| ----------------- | ------------------------------------------------------------ |
| image | 镜像仓库地址 |
| tag | 镜像标签 |
| tags | 同步构建更多标签的镜像版本 |
| working directory | 构建任务所在的目录 |
| dockerfile | 源代码仓库中 Dockerfile 文件所在目录 |
| build arguments | 定义传递构建参数 |
| platform | 指定构建容器镜像所针对的目标平台,默认为` linux/amd64`,还支持 `linux/arm` |
| no cache | 是否使用缓存,默认不缓存 |
| disable push | 是否构建成功后推送进行,默认推送 |
### 使用方式
推送镜像时,该步骤需要用户名/密码登录镜像仓库,所以目前存在以下两种使用方式:
- 使用凭证 + docker build
- 环境变量 + docker build
#### 使用凭证 + docker build
1. 提前创建好凭证,并且在流水线的`添加凭证`步骤中使用该凭证,用户名变量设置为 `DOCKER_USERNAME`,密码变量设置为 `DOCKER_PASSWORD`
![docker0](../../../images/docker0.jpg)
1. 创建子步骤 `docker build` ,填写相关参数
#### 环境变量 + docker build
注意:不建议该方式,密码会暴露在流水线当中
1. 在流水线的环境变量模块中添加变量 `DOCKER_USERNAME` 、`DOCKER_PASSWORD` 并设置好对应信息
![docker1](../../../images/docker1.jpg)
1. 创建步骤 `docker build` ,填写相关参数