上传 Generic 类型制品(旧)
目前该页面已有更新,请移步至最新页面,使用更便捷的方式上传 Generic 类型制品。
功能介绍
在 CODING 持续集成任务构建过程当中,您可以选择将构建物上传至 CODING 制品库。为了方便该场景的用户,我们提供了 Generic 制品上传插件,来让您更方便地在持续集成当中上传 Generic 类型构建物到 CODING 制品仓库当中,目前单文件大小最高支持 5GB。
在使用该功能之前,请确保您对 Generic 类型制品库有初步了解,您可以点击阅读 在 CODING 中使用 Generic 制品库了解更多。
Jenkinsfile 配置
pipeline {
agent any
environment {
ENTERPRISE = '<团队域名前缀>'
PROJECT = '<项目名>'
ARTIFACT_REPO = '<仓库名>'
PKG_PATH = '<文件路径>' //相对于 /root/workspace
VERSION = '<制品版本>'
ARTIFACTS_CLI = 'artifacts-docker.pkg.coding.net/artifacts/artifacts/artifacts-cli:0.1.0'
}
stages {
stage('检出') {
steps {
checkout(
[$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]],
userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])
}
}
stage(' 上传到 generic 仓库') {
steps {
script {
// 使用 CODING 持续集成内置的凭证作为 Generic 类型的上传
// 您也可以使用自己创建的项目令牌,写入到 USERNAME 和 PASSWORD 中
withCredentials([
usernamePassword(
credentialsId: env.DOCKER_REGISTRY_CREDENTIALS_ID,
usernameVariable: 'USERNAME',
passwordVariable: 'PASSWORD'
)]) {
// 使用 fallcate 命令创建 1GB 大小的文件 (持续集成默认的工作目录为 /root/workspace)
sh 'fallocate -l 1g ./1g-large'
sh '''
docker run --rm \
-v /root/workspace:/data \
${ARTIFACTS_CLI} \
coding-artifacts \
-u ${USERNAME}:${PASSWORD} \
-t ${ENTERPRISE} \
--project ${PROJECT} \
--repo ${ARTIFACT_REPO} \
generic push ${PKG_PATH} \
-v ${VERSION}
'''
}
}
}
}
}
}
制品版本>文件路径>仓库名>项目名>团队域名前缀>
带入参数示例如下:
pipeline {
agent any
stages {
stage('检出') {
steps {
checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]],userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])
}
}
stage('上传到 generic 仓库') {
steps {
script {
withCredentials([
usernamePassword(
credentialsId: env.DOCKER_REGISTRY_CREDENTIALS_ID, usernameVariable: 'pt34ipqa5593',
passwordVariable: '03578a94ff14a6c252d3018470414c6c56e5282f')]) {
// 使用 fallcate 命令创建 1GB 大小的文件 (持续集成默认的工作目录为 /root/workspace)
sh 'fallocate -l 1g ./1g-large'
sh '''
docker run --rm \
-v /root/workspace:/data \
${ARTIFACTS_CLI} \
coding-artifacts \
-u 'pt34ipqa5593':'03578a94ff14a6c252d3018470414c6c56e5282f' \
-t ${ENTERPRISE} \
--project ${PROJECT} \
--repo ${ARTIFACT_REPO} \
generic push ${PKG_PATH} \
-v ${VERSION}
'''
}
}
}
}
}
environment {
ENTERPRISE = 'anywhere'
PROJECT = 'helloworld'
ARTIFACT_REPO = 'my-repo'
PKG_PATH = '.'
VERSION = '1.0.0'
ARTIFACTS_CLI = 'artifacts-docker.pkg.coding.net/artifacts/artifacts/artifacts-cli:0.1.0'
}
}
配置运行成功后,可以在 my-repo 制品库当中看到上传的制品:
插件说明
artifacts-docker.pkg.coding.net/artifacts/artifacts/artifacts-cli:0.1.0 就是 CODING 提供用来上传 Generic 制品的镜像插件。在命令执行过程当中,您想要上传的文件会以 volume 形式 mount 到 Docker 容器的 /data 的目录下。
1、当持续集成中的 /root/workspace 目录有如下内容:
/root/workspace
├── dir1
│ └── file1
├── file2
└── file3
2、执行如下命令:
docker run -rm
-v /root/workspace:/data
artifacts-docker.pkg.coding.net/artifacts/artifacts/artifacts-cli:0.1.0
-u my-account:my-password
-t my-team
--project my-project
--repo my-repo
generic push .
-v 1.0.0
3、将会把 /data 容器下所有文件上传到 my-repo 制品库中,并发布为独立的 3 个制品。
- dir1/file1:1.0.0
- file2:1.0.0
- file3:1.0.0
注意:Generic 类型制品库不支持上传空文件,在使用上传插件时也请勿上传空文件。
文档是否对您有用?
感谢反馈有用
感谢反馈没用