tencent cloud

文档反馈

如何使用 CAR-CLI 实现应用上传及版本更新

最后更新时间:2024-01-26 12:00:38
    CAR-CLI 是应用版本管理的命令行工具。通过 CAR-CLI,您可以快速轻松的调用云应用 API 来查询、上传、更新和删除应用版本。本文将介绍 CAR-CLI 的基础功能,以及如何使用 CAR-CLI 构建流水线来实现应用版本更新的自动化。

    使用基础功能

    说明:
    使用时请将配置文件放到命令工具同目录下,并将腾讯云账号的 SecretId、SecretKey 以及 AppId 替换。CAR-CLI 支持 MacOS,Windows 以及 Linux 系统,以下以 Linux 操作系统为例。

    查看帮助信息

    执行以下命令,查看命令行工具 CAR-CLI 的帮助信息。
    ./car help
    以新建应用命令为例,执行以下命令,查看具体指令的详细帮助信息。
    ./car create-application help

    新建应用

    执行以下命令可创建新应用,需填写应用的名称,名称只支持中文、字母、数字或连接符"-",要求16字符以内。指令执行成功则返回新建应用的应用 ID。
    ./car create-application --name xxx

    创建应用新版本

    执行以下命令可为应用创建新版本,同一应用下版本创建数量上限为5个,需填写应用 ID、版本名称和应用格式(zip/rar/7z),若有“创建中/待发布/创建失败”的版本,则操作会被拒绝,版本创建后,还需上传应用包和发布版本。执行执行成功则返回新版本的版本 ID。
    ./car create-application-version --app-id app-xxx --name xxx --type zip

    上传应用版本文件

    执行以下命令为应用版本上传应用包,需填写应用 ID、本地路径和应用版本 ID,请确保应用 ID 和应用版本 ID 正确。若创建应用或创建应用新版本中,上传文件任务失败,请执行本命令,同时确保本地文件路径不变。
    ./car upload-application-version-file --app-id app-xxx --path /data/xxx.zip --version-id ver-xxx
    注意:
    应用版本文件上传成功后,若所上传文件的名称和格式与创建应用新版本中使用的版本名称和应用格式不同,则版本名称和应用格式会被替换为所上传文件的名字和格式。

    发布应用版本

    执行以下命令发布应用指定版本,需填写应用 ID 和应用版本 ID。
    ./car set-version-online --app-id app-xxx --version-id ver-xxx

    删除应用版本

    执行以下命令删除应用版本,需填写应用 ID 和应用版本 ID,异步删除,可通过查询应用版本列表查看是否删除成功。
    ./car delete-application-version --app-id app-xxx --version-id ver-xxx

    展示应用版本列表

    执行以下命令展示应用版本列表,需填写应用 ID。输出版本 ID 和版本状态,可通过 grep 和 awk 命令获取最旧的版本。
    ./car describe-application-version --app-id app-xxx
    ./car describe-application-version --app-id app-xxx | grep -v "Inuse" | awk '{print $1}' | head -n 1

    应用版本更新流水线构建

    本节以腾讯云 CODING 流水线为例,构建应用版本更新流水线。
    
    
    

    下载 CAR-CLI

    加载远程配置文件到当前工作目录。
    cd workdir
    
    wget "your config file url"
    执行如下脚本,下载命令行工具。
    cd workdir
    
    mkdir pkg && cd pkg
    wget https://github.com/tencentyun/car-cli/raw/main/car.zip
    unzip car.zip
    mv ./car/linux/car ../
    cd ..
    
    chmod +x car

    下载新版本应用包

    配置下述脚本来下载新版本应用包。
    cd workdir
    
    wget $PackageURL # 在流水线环境变量中配置PackageURL变量

    新建版本

    为已有应用创建新版本并上传新版本应用,最后发布新版本。
    注意:
    如果应用版本数量大于5,此脚本会自动删除最旧非使用中的版本。
    cd workdir
    
    # 查询对应应用的版本列表
    output=$(./car describe-application-version --app-id $ApplicationID) #流水线环境变量配置ApplicationID
    lineCount=$(echo "$output" | wc -l)
    
    # 若版本数量大于5,则删除旧版本
    if [ $lineCount -ge 5 ];then
    versionID=$(echo "$output" | grep -v "Inuse" | awk '{print $1}' | head -n 1)
    ./car delete-application-version --app-id $ApplicationID --version-id $versionID
    fi
    
    # 因删除应用版本是异步操作,所以定时查询版本是否删除成功
    waitTimes=0
    while [ $lineCount -ge 5 ]
    do
    output=$(./car describe-application-version --app-id $ApplicationID) #替换为自己ApplicationID
    lineCount=$(echo "$output" | wc -l)
    waitTimes=$((waitTimes+1))
    if [ $waitTimes -gt 20 ]
    then
    echo "Error: Waiting too long to delete application version."
    exit 1
    fi
    sleep 1
    done
    
    # 根据PackageURL查询包名称和包类型
    fileName=$(basename $PackageURL) # 流水线环境变量配置PackageURL
    echo $fileName
    fileType="${PackageURL##*.}"
    echo $fileType
    
    # 创建新版本
    output=$(./car create-application-version --app-id $ApplicationID --name $fileName --type $fileType)
    
    # 上传新版本应用到云端
    ./car upload-application-version-file --app-id $ApplicationID --version-id $output --path $fileName
    
    # 发布新版本
    ./car set-version-online --app-id $ApplicationID --version-id $output
    
    
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持