tencent cloud

Feedback

How to Implement Application Upload and Version Update via CAR-CLI

Last updated: 2024-01-26 12:00:38
    CAR-CLI is a command line tool for managing application versions. You can use CAR-CLI to quickly and easily query, upload, update, and delete application versions by calling TencentCloud APIs. This document describes the basic features of CAR-CLI and how to use it to implement an automated pipeline for updating application versions.

    Basic features

    Note:
    You need to place the configuration file in the same directory as the CLI tool and replace with the SecretId, SecretKey, and AppId of your Tencent Cloud account. CAR-CLI supports the macOS, Windows, and Linux operating systems. The following examples are based on Linux.

    View help information

    Run the following command to view the tool's help information.
    ‌./car help
    For example, run the following command to view the help information for the application creation command.
    ‌./car create-application help

    Create an application

    Run the following command to create an application. You need to enter the application name, which can contain up to 16 Chinese characters, letters, digits, or hyphens (-). If this command is executed successfully, the application ID of the new application will be returned.
    ‌./car create-application --name xxx

    ‌Create an application version

    Run the following command to create an application version. Up to five versions can be created for an application. You need to enter the application ID, version name, and application file format (ZIP, RAR, or 7z). If there are any versions in ApplicationUpdateCreating, ApplicationUpdateNoReleased, or ApplicationUpdateCreateFail status, this command will be rejected. After the version is created successfully, you also need to upload the application version file and release the new version. If this command is executed successfully, the application version ID will be returned.
    ‌./car create-application-version --app-id app-xxx --name xxx --type zip

    Upload an application version file

    Run the following command to upload an application file for a new version. You need to enter the application ID, local path of the application file, and version ID. If the upload fails during the creation of an application or an application version, you can still proceed with this command. You must ensure that the local file path is not changed.
    ./car upload-application-version-file --app-id app-xxx --path /data/xxx.zip --version-id ver-xxx
    Note:
    After the application version file is uploaded successfully, if its version name and format are different from those used for creating an application version, the version name and format will be replaced with those of the uploaded file.

    Release an application version

    Run the following command to release an application version. You need to enter the application ID and version ID.
    ‌./car set-version-online --app-id app-xxx --version-id ver-xxx

    Delete an application version

    ‌Run the following command to asynchronously delete an application version. You need to enter the application ID and version ID. To check whether the version has been deleted successfully, you can query the list of application versions.
    ‌./car delete-application-version --app-id app-xxx --version-id ver-xxx

    Display the list of application versions

    Run the following command to display the list of application versions. You need to enter the application ID. To obtain the output version ID and version status of the oldest version, use the grep and awk commands.
    ./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

    Pipeline for updating application versions

    This section uses a Tencent Cloud CODING pipeline as an example to show you how to implement a pipeline for updating application versions.
    
    
    

    ‌Download CAR-CLI

    Load the remote configuration file into the current working directory.
    cd workdir
    
    ‌wget "your config file url"
    Run the following scripts to download the CAR-CLI tool.
    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

    Download the application file of the new version

    Configure the following scripts to download the application file of the new version.
    cd workdir
    
    wget $PackageURL # Configure `PackageURL` in pipeline environment variables

    Create an application version

    Create a new version for an existing application, upload the new application version file, and finally release the new version.
    Note:
    If the number of application versions exceeds 5, this script will automatically delete the oldest versions which are not in use.
    cd workdir
    
    # Query the list of application versions
    ‌output=$(./car describe-application-version --app-id $ApplicationID) # Configure `ApplicationID` in pipeline environment variables
    ‌lineCount=$(echo "$output" | wc -l)
    
    # If the number of application versions exceeds 5, delete the oldest versions which are not in use
    ‌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
    
    # Deleting an application version is an async operation, so you need to regularly check whether the version deletion was successful
    ‌waitTimes=0
    ‌while [ $lineCount -ge 5 ]
    do
    output=$(./car describe-application-version --app-id $ApplicationID) # Replace the `ApplicationID` with your actual `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
    
    ‌# Query the application file name and type by `PackageURL`
    ‌fileName=$(basename $PackageURL) # Configure `PackageURL` in pipeline environment variables
    ‌echo $fileName
    ‌fileType="${PackageURL##*.}"
    ‌echo $fileType
    
    # Create an application version
    ‌output=$(./car create-application-version --app-id $ApplicationID --name $fileName --type $fileType)
    
    ‌# Upload the new application version file to the cloud
    ‌./car upload-application-version-file --app-id $ApplicationID --version-id $output --path $fileName
    
    # Release the new version
    ‌./car set-version-online --app-id $ApplicationID --version-id $output
    
    
    
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support