1. 项目协同
  2. 代码仓库
  3. DevOps 实践之旅
  4. 一分钟开始持续集成之旅
  5. 持续部署
  6. 制品库

制品属性及 REST API 操作说明

功能介绍

CODING 制品属性支持用户对制品版本的自定义属性,可以进行查询新增删除修改的操作。制品属性同时支持通过页面操作以及 REST API 进行管理。

制品属性制品元数据的区别:制品属性不同于制品元数据,制品元数据通常为制品类型的原生属性,如: npm 的 packageName 和 version 等信息。制品属性更多的是用来描述元数据无法定义的内容,您可以利用制品属性写入在 CODING 持续集成中的制品产出信息,或其它自定义内容。

通过页面操作管理属性

在【制品库】页面,点击指定仓库下的指定包名,进入包页面后,点击【属性】,可在页面上对制品属性进行查看新增修改删除操作。

如何在 CODING 持续集成中收集制品属性

下面给出一个 Docker 制品的属性收集的 Jenkinsfile 示例,可以使用该示例文件创建一个持续集成 Job。

pipeline {
  agent any
  environment {
    ENTERPRISE = "myteam"
    PROJECT = "myproject"
    ARTIFACT_REPO = "myrepo"
    PACKAGE = "mypkg"
    VERSION = "myversion"

    ARTIFACT_BASE = "${ENTERPRISE}-docker.pkg.coding.net"

    ARTIFACT_IMAGE = "${ARTIFACT_BASE}/${PROJECT}/${ARTIFACT_REPO}/${PACKAGE}:${VERSION}"
    // 该 docker 镜像用于收集制品属性
    PROP_COLLECTOR = 'docker.pkg.coding.net/ci-props-collector: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('推送到制品库') {
      steps {
        // 此处使用 hello-world 的 docker 镜像作为演示
        // 您可以根据自己的实际情况将此处修改成其他制品类型的推送逻辑
        sh 'docker pull hello-world'
        sh 'docker tag hello-world ${ARTIFACT_IMAGE}'
        script {
          docker.withRegistry("https://${ARTIFACT_BASE}", "${env.DOCKER_REGISTRY_CREDENTIALS_ID}") {
            docker.image("${ARTIFACT_IMAGE}").push()
          }
        }
      }
    }
    stage('收集制品属性') {
      steps {
        script {
          // 使用 CODING 持续集成内置的服务连接作制品属性接口的认证方式
          // 您也可以使用自己创建的项目令牌,写入到 USERNAME 和 PASSWORD 中
          withCredentials([
              usernamePassword(
                  credentialsId: env.DOCKER_REGISTRY_CREDENTIALS_ID,
                  usernameVariable: 'USERNAME',
                  passwordVariable: 'PASSWORD'
              )]) {
                  // 将本次构建的信息写入到对应的制品属性中
                  sh '''
                    docker run --rm \
                        -e USERNAME=${USERNAME} \
                        -e PASSWORD=${PASSWORD} \
                        -e PROJECT=${PROJECT} \
                        -e REPO=${ARTIFACT_REPO} \
                        -e PACKAGE=${PACKAGE} \
                        -e VERSION=${VERSION} \
                        -e ENTERPRISE=${ENTERPRISE} \
                        -e CI_BUILD_NUMBER=${CI_BUILD_NUMBER} \
                        -e JOB_ID=${JOB_ID} \
                        -e JOB_NAME=${JOB_NAME} \
                        -e PROJECT_NAME=${env.PROJECT_NAME} \
                        -e GIT_REPO_URL=${GIT_REPO_URL} \
                        -e GIT_COMMITTER_NAME=${GIT_COMMITTER_NAME} \
                        -e GIT_COMMITTER_EMAIL=${GIT_COMMITTER_EMAIL} \
                        -e GIT_LOCAL_BRANCH=${GIT_LOCAL_BRANCH} \
                        -e GIT_COMMIT=${GIT_COMMIT} \
                        ${PROP_COLLECTOR}
                  '''
            }
        }
      }
    }
  }
}

通过 REST API 管理属性

本章节内容已迁移至 CODING OPEN API 目录下,点击访问

上一篇制品库认证
最近更新
感谢反馈有用
感谢反馈没用

在阅读中是否遇到以下问题?

您希望我们如何改进?