gitlab ci chart_build 显示成功 但是没有 上传到 chart 服务

  • Choerodon平台版本:0.22

gitlab-ci.yml

    image: registry.cn-shanghai.aliyuncs.com/c7n/cibase:0.10.0

stages:
  - build
  - chart-build

build:
  stage: build
  script:
    - docker build -t ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG} .
    - docker tag ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG} ${DOCKER_REGISTRY}/${CI_PROJECT_PATH}:${CI_BUILD_REF_NAME}
    - docker push ${DOCKER_REGISTRY}/${GROUP_NAME}/${PROJECT_NAME}:${CI_COMMIT_TAG}
    - docker push ${DOCKER_REGISTRY}/${CI_PROJECT_PATH}:${CI_BUILD_REF_NAME}

chart-build:
  stage: chart-build
  script:
    - chart_build

.auto_devops: &auto_devops |
  http_status_code=`curl -o .auto_devops.sh -s -m 10 --connect-timeout 10 -w %{http_code} "${CHOERODON_URL}/devops/ci?token=${Token}&type=front"`
  if [ "$http_status_code" != "200" ]; then
    cat .auto_devops.sh
    exit 1
  fi
  source .auto_devops.sh
  function chart_build() {
        echo "11111111111111"
        #判断chart主目录名是否与应用编码保持一致
        CHART_DIRECTORY_PATH=$(find . -maxdepth 2 -name $PROJECT_NAME)
        if test ! -n "$CHART_DIRECTORY_PATH" ; then
            echo "The chart's home directory should be consistent with the application code!"
            exit 1
        fi
        # 查找Chart.yaml文件
        CHART_PATH=$(find . -maxdepth 3 -name Chart.yaml)
        # 重置values.yaml文件中image.repository属性
        sed -i "s,repository:.*$,repository: $DOCKER_REGISTRY/$GROUP_NAME/$PROJECT_NAME,g" ${CHART_PATH%/*}/values.yaml
        # 构建chart包,重写version与app-version为当前版本
        helm package ${CHART_PATH%/*} --version $CI_COMMIT_TAG --app-version $CI_COMMIT_TAG
        TEMP=${CHART_PATH%/*}
        FILE_NAME=${TEMP##*/}
        # 通过Choerodon API上传chart包到devops-service
        result_upload_to_devops=$(curl -X POST \
        -F "token=$Token" \
        -F "harbor_config_id=$HARBOR_CONFIG_ID" \
        -F "version=$CI_COMMIT_TAG" \
        -F "file=@$FILE_NAME-$CI_COMMIT_TAG.tgz" \
        -F "commit=$CI_COMMIT_SHA" \
        -F "image=$DOCKER_REGISTRY/$GROUP_NAME/$PROJECT_NAME:$CI_COMMIT_TAG" \
        "$CHOERODON_URL/devops/ci" \
        -o "$CI_COMMIT_SHA-ci.response" \
        -w %{http_code})
        # 判断本次上传到devops是否出错
        echo $HARBOR_CONFIG_ID
        echo $FILE_NAME
        echo $CI_COMMIT_SHA-ci.response
        response_upload_to_devops=$(cat "$CI_COMMIT_SHA-ci.response")
        echo "2222222222222222222222"
        echo $response_upload_to_devops
        rm "$CI_COMMIT_SHA-ci.response"
        if test "$result_upload_to_devops" != "200" ; then
            echo $response_upload_to_devops
            echo "upload to devops error"
            exit 1
        fi
    }

before_script:
  - *auto_devops

执行结果

但是发布的时候
image

请问 我该如何查问题

你重试下chart_build这个job, 然后看看devops-service日志有什么异常的地方吗?

没有 也没有什么报错日志,都是这种的重复日志

你用内置的go模板导入一个应用服务, 然后跑ci看看生成chart包吗?

还是一样 生成版本了 但是 部署的时候 不行

你好, 麻烦参考这里直接用命令行上传个chart包, 看看chartMuseum是否正常
https://chartmuseum.com/docs/#chart-manipulation


所有返回都是 {“error”:“not found”}。
您看我给您我们内网的 vpn 您能帮忙看下吗。当然可以有一些酬谢。


我查看 chart日志 devops sevice 调用接口上传的时候 也是显示 404

你好, 参考这篇文章看看, 是不是这个参数有问题?
https://stackoverflow.com/questions/48577211/fail-to-upload-chart-to-chartmuseum

我自己独立搭建了 chartmuseum 更改了仓库地址,现在可以了。

好的