轻轨线(CI/CD)多应用元数据打包优化

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

轻轨线(CI/CD)多应用元数据打包优化

关于轻轨线(CI/CD)打包应用元数据,原方案需要指定每个应用元数据路径,当插件工程没按应用创建,为了打包应用元数据需要在轻轨线项目中添加多个苍穹应用并填写元数据路径,存在一定的工作量,现有优化方案:

  1.   元数据,脚本和预插数据按应用编码按下图格式放入文件夹中,如下图(应用编码app01):


2.  将多个应用元数据放入git仓库一个文件夹下,如下图:

3.  在苍穹应用中“元数据存放路径”填写第2步中的路径,流水线打包时会将该目录下所有应用元数据打进补丁包中,无需再填写脚本路径,如下图:

4.  替换CI流水线“构建补丁包”节点中处理元数据中脚本:


替换为:

  sh '''

    . /tmp/${JOB_NAME}/set_env_inpipeline.sh

    # 初始化打包环境

    # pipeline_build_dm.sh

    COSMIC_VERSION=`echo ${COSMIC_PATCH_VERSION}|awk -F \'[.]\' \'{print $1"."$2}\'`

 

    if [ ${IS_BUILD_META} -eq 0 ] ||  [ -z "${METADATA_PATH}" ];then

     echo "is_build_meta=${IS_BUILD_META},build meta pass"

    else

      mkdir -p ${OUTPUTDIR}/mc_upgrade_package_tmp/dm/

      cd ${OUTPUTDIR}/mc_upgrade_package_tmp/dm

      #获取苍穹sdk

      MODEL_STATUS=`curl -k -m 2 -o /dev/null -s -w %{http_code}  ${NEXUS_PROXY}/product_repo/components?type=pub\\&file_url=\\/tools/gen_datamodel.sh -H "X-Console-Ukey:${X_Console_Ukey}"`

      if [ $MODEL_STATUS = "404" ]; then

        echo "/pub/tools/gen_datamodel.sh file is not exist!"

        exit 1

      fi

      curl -k -O ${NEXUS_PROXY}/product_repo/components?type=pub\\&file_url=\\/tools/gen_datamodel.sh -H "X-Console-Ukey:${X_Console_Ukey}"

     

      for d in ${WORKSPACE}/${METADATA_PATH}/*; do if [ -d "$d" ]; then

          appdir="$(basename "$d")"

          mkdir -p ${OUTPUTDIR}/mc_upgrade_package_tmp/dm/${appdir}/datamodel/${COSMIC_VERSION}/main/

          #拷贝元数据

          /bin/cp -rp ${WORKSPACE}/${METADATA_PATH}/${appdir} ${OUTPUTDIR}/mc_upgrade_package_tmp/dm/${appdir}/datamodel/${COSMIC_VERSION}/main/

 

          cd ${OUTPUTDIR}/mc_upgrade_package_tmp/dm/${appdir}

          cp ../gen_datamodel.sh ./

          #生成元数据包

          sh -x gen_datamodel.sh

          rm -rf ./gen_datamodel.sh

          zip -r ${OUTPUTDIR}/mc_upgrade_package_tmp/dm/${appdir}/${COSMIC_CLOUD_NAME}-${appdir}-dm-1.x.zip ./datamodel/

          mv ${OUTPUTDIR}/mc_upgrade_package_tmp/dm/${appdir}/${COSMIC_CLOUD_NAME}-${appdir}-dm-1.x.zip ${OUTPUTDIR}/mc_upgrade_package/dm/

        fi

      done

    fi

  '''

注:该种打包一个文件夹下多个应用元数据方案与原按一个个应用打包方案不兼容,不能在一条流水线中同时存在上面2种情况

 

如需将上面CI流水线改动方案制作成模版供其他流水线使用,可按如下方式:

1.  新建标准CI流水线:

2.  按上面第4步替换打包元数据脚本

3.  保存模板


4.  后续创建流水线时就可以应用到该模板了


轻轨线(CI/CD)多应用元数据打包优化

关于轻轨线(CI/CD)打包应用元数据,原方案需要指定每个应用元数据路径,当插件工程没按应用创建,为了打包应用元数据需要在轻轨线项目中...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息