Help Center/ CodeArts Build/ User Guide/ Configuring a Build Task/ Configuring Build Actions/ Uploading Software Packages to Release Repos
Updated on 2024-11-19 GMT+08:00

Uploading Software Packages to Release Repos

For details about the restrictions on uploading software packages, see constraints of CodeArts Artifact.

  • Only files can be uploaded, folders cannot be uploaded, and directories cannot be automatically created.

    For example, the a directory contains the aa file and b directory that contains the bb file, and the build package directory is set to a/**.

    When the a directory is scanned, both aa and bb will be uploaded to the same directory, and the system will not create a b directory in release repos.

  • To upload a folder, package it before adding the Upload to Release Repo action. You can package the folder by running the packaging command or adding the Run Shell Commands action.

Tutorial Video

This video shows how to build with Maven and upload the resulting software package to the release repo using the GUI.

Build on GUI

Add Upload to Release Repo, when configuring build actions. Set the parameters according to Table 1.

When you select Windows executors, add action Upload Software Package to Release Repos (Windows).

Table 1 Parameters for uploading a software package to the release repo

Parameter

Description

Action Name

Assign a custom name to the build action. The name can contain:

  • Letters, digits, hyphens (-), underscores (_), commas (,), semicolons (;), colons (:), periods (.), slashes (/), and parentheses (()).
  • 1 to 128 characters.

Package Location

Directory for storing the build result.

  • The build package directory supports regular expression matching. ** means that the system recursively traverses the current directory. * indicates zero or multiple characters. ? indicates one character.
  • The system file uses slashes (/) as separators, and the path is not case-sensitive.
Examples:
  • *.class: Matches files whose names end with .class in the current directory.
  • **/*.class: Recursively matches all files whose names end with .class in the current directory.
  • test/a??.java: Matches Java files whose names start with a followed by two characters in the test directory.
  • **/test/**/XYZ*: Recursively matches all files whose parent directory is test and whose names start with XYZ, for example, abc/test/def/ghi/XYZ123.

Version

Optional.

Set the name of the directory where the software package generated by the build task will be uploaded to the release repo.

  • Not specified (recommended): Use the build number to name the directory for storing files uploaded to release repos.
  • Specified: Files in the directory with the same name may be overwritten.

Package Name

Optional.

Set the name for the software package generated by the build task. The name will be used when the package is uploaded to the release repo.

  • Not specified (recommended): Use the original file name to name the file uploaded to release repos. Leave Package Name unspecified so that all files matching the build package directory can be uploaded.
  • Specified: A file may be overwritten when another file with the same name is uploaded. For multiple file uploads with different package names, repeat the upload action for each file.

Continue After Failure

Specify whether to proceed after the current action fails by setting the parameter to either Yes or No.

Build with Code

Modify the code in the BUILD block in Creating a YAML File for Your Code-based Build by referring to the following sample code:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
version: 2.0 # The value must be 2.0.
steps:
  BUILD:
    - upload_artifact:
           inputs:
             path: "**/target/*.?ar"
             version: 2.1
             name: packageName
version: 2.0 # The value must be 2.0.
steps:
  BUILD:
    - upload_artifact:
           inputs:
             path: "**/target/*.?ar"
             version: 2.1
             name: packageName
             ignore_fail: true
Table 2 Parameters in the sample code

Parameter

Type

Description

path

String

Directory for storing the build result.

  • The build package directory supports regular expression matching. ** means that the system recursively traverses the current directory. * indicates zero or multiple characters. ? indicates one character.
  • The system file uses slashes (/) as separators, and the path is not case-sensitive.
Examples:
  • *.class: Matches files whose names end with .class in the current directory.
  • **/*.class: Recursively matches all files whose names end with .class in the current directory.
  • test/a??.java: Matches Java files whose names start with a followed by two characters in the test directory.
  • **/test/**/XYZ*: Recursively matches all files whose parent directory is test and whose names start with XYZ, for example, abc/test/def/ghi/XYZ123.

version

String

Optional.

Enter the release version number.

Not specified (recommended): Use the build number to name the directory for storing files uploaded to release repos.

Specified: Files in the directory with the same name may be overwritten.

name

String

Optional.

Enter the name of the package generated during the build.

Not specified (recommended): Use the original file name to name the file uploaded to release repos.

Specified: A file may be overwritten when another file with the same name is uploaded.

ignore_fail

string

Whether to proceed after the current action fails.
  • true: Yes
  • Empty: No
Figure 1 Impact of an unspecified release version and package name on uploads