在持续集成中推送制品
本插件用于将构建环境中的 Docker 镜像自动推送至制品仓库,并支持将构建过程中的关键信息写入制品属性。
快速开始
仅需要填写构建环境中的镜像 tag,以及需要推送的仓库名称(默认推送到本项目仓库),便可推送制品到 CODING 制品仓库。
文本编辑器插件配置如下:
stage {
steps {
useCustomStepPlugin(
key: '64:artifact_docker_push',
version: '1.0',
params: [
image: 'node-express',
repo: 'docker'
]
)
}
}
详细参数
本插件还支持您将镜像推送到任意 CODING 企业或 WePack 制品仓库中,同时支持自定义制品属性。
stage {
steps {
useCustomStepPlugin(
key: 'coding-public:artifact_docker_push',
version: 'latest',
params: [
image: 'my-image:1.0.0',
repo: 'my-repo',
// 登陆 Docker 仓库时用的 Docker 仓库地址
host: 'myteam-docker.pkg.coding.net',
// 项目名 / 命名空间名
project: 'my-project',
// 推送至仓库所用的用户民 / 密码 / token
username: 'repo-login-username',
password: 'repo-login-password',
// 自定义属性
properties: '[{\"name\":\"key1\",\"value\":\"value1\"},{\"name\":\"key2\",\"value\":\"value2\"}]',
// 当制品仓库 host 的域名和系统域名不一致时填写,一般情况下不用填写
systemHost: 'wepack.hello.net'
]
)
}
}
参数详情
参数 | 描述 | 默认值 | 备注 |
---|---|---|---|
image | 您需要推送的当前环境中制品 tag,例如 my-image:1.0.0 | - | 必填;如果当前构建环境中,没有该 tag,系统会尝试匹配该制品名称的其他版本; |
host | 推送目标制品仓库 host | ${CCI_CURRENT_TEAM}-docker.pkg.${CCI_CURRENT_DOMAIN} | 非必填;如果您需要推送的制品仓库 host 协议为 http,需要明确定义 |
project | 推送目标制品仓库所在项目 | ${PROJECT_NAME.toLowerCase()} | 非必填; |
repo | 推送目标制品仓库 | - | 必填; |
properites | 推送到目标仓库时自动写入制品的属性 | 默认属性列表详见下表 | 非必填;如果您自定义的属性名如果与默认值重合,则自定义属性值会覆盖默认属性值 |
username | 访问推送目标仓库认证用户名 | ${PROJECT_TOKEN_GK} | 请输入项目令牌 / 个人令牌的用户名 |
password | 访问推送目标仓库认证密码 | ${PROJECT_TOKEN} | 请输入项目令牌 / 个人令牌 |
systemHost | 团队 / 系统 host | ${${CCI_CURRENT_TEAM}}.${CCI_CURRENT_DOMAIN} | 非必填;只有当制品仓库域名和系统域名不一致时,才需要填写本字段 |
参数默认值环境变量说明
环境变量名 | 描述 |
---|---|
CCI_CURRENT_WEB_PROTOCOL | 当前构建环境的 PROTOCOL,例如 https |
CCI_CURRENT_TEAM | 当前构建环境的团队名,例如 codingcorp |
CCI_CURRENT_DOMAIN | 当前构建环境的域名,例如 coding.net |
PROJECT_NAME | 当前 CI job 所在项目名,例如 coding-artifacts |
PROJECT_TOKEN_GK | 项目令牌用户名 |
PROJECT_TOKEN | 项目令牌密码 |
properties 默认值
制品属性名 | 制品属性值(环境变量名) | 描述 |
---|---|---|
ci.project.url | PROJECT_WEB_URL | CI 所在项目 url |
ci.project.name | PROJECT_NAME | CI 所在项目名 |
ci.job.id | JOB_ID | CI 构建计划 id |
ci.job.name | CCI_JOB_NAME | CI 构建计划名称 |
ci.build.number | CI_BUILD_NUMBER | CI 构建记录编号 |
ci.build.trigger.method | CCI_TRIGGER_METHOD | CI 构建记录触发方式 |
ci.build.trigger.user.name | TRIGGER_USER_NAME | CI 构建记录触发者 |
ci.build.trigger.user.email | TRIGGER_USER_EMAIL | CI 构建记录触发 email |
git.repo.http.url | GIT_HTTP_URL | 构建目标代码仓库地址(https 协议) |
git.repo.ssh.url | GIT_SSH_URL | 构建目标代码仓库地址(ssh 协议) |
git.repo.name | DEPOT_NAME | 构建目标代码仓库名 |
git.branch | GIT_LOCAL_BRANCH | 构建目标分支 |
git.commit | GIT_COMMIT | 构建目标 commit |
git.tag | GIT_TAG | 构建目标 tag |
git.committer.name | GIT_COMMITTER_NAME | 代码提交者 |
git.committer.email | GIT_COMMITTER_EMAIL | 代码提交者 email |
问题反馈 >
2022-10-31最近更新
感谢反馈有用
感谢反馈没用
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。