更新时间:2024-12-11 GMT+08:00
分享

上传软件包到软件发布库

上传的软件包相关限制,请参考制品仓库服务的约束与限制

  • 仅支持上传单个文件、多个文件,不支持上传文件夹、自动创建路径。

    例如:“a”目录下有“aa”文件和“b”目录,“b”目录下有“bb”文件,构建包路径配置为“a/**”。

    即递归扫描“a”目录下所有文件,两个文件是同一个目录下,“aa”、“bb”两个文件将会上传到同一个目录下,系统不会在软件发布库里自动创建“b”目录。

  • 如果用户有上传文件夹的需要,建议在“上传软件包到软件发布库”构建步骤之前,将待上传的文件夹打包为单文件后再上传。可以通过现有构建步骤执行打包命令,也可以新增“执行shell命令”构建步骤执行打包命令。

操作视频

本视频介绍基于Maven构建的图形化构建方式,演示上传软件包至软件发布库操作。

图形化构建

配置构建步骤中,添加“上传软件包到软件发布库”构建步骤,参考表1配置参数。

执行机选择Windows执行时,需添加“上传软件包到软件发布库(Windows环境)”构建步骤。

表1 上传软件包到软件发布库参数说明

参数

说明

步骤显示名称

构建步骤的名称,可自定义修改。

  • 支持中文、英文、数字、“-”“_”、英文逗号、英文分号、英文冒号、“.”“/”、圆括号(中英文)。
  • 字符长度范围为1~128。

构建包路径

填写构建结果所在路径。

  • 构建包路径支持正则匹配,“**”递归遍历当前目录,“*”匹配0或者多个字符,“?”匹配一个字符。
  • 系统文件分隔符使用“/”,路径不区分大小写。
举例说明:
  • *.class:当前目录下匹配“.class”结尾的文件。
  • **/*.class:当前目录下递归匹配所有的“.class”结尾的文件。
  • test/a??.java:匹配“test”目录下以“a”开头后跟两个字符的java文件。
  • **/test/**/XYZ*:递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/test/def/ghi/XYZ123”。

发布版本号

可选参数。

配置当前构建任务生成的软件包上传到软件发布库中的目录名。

  • 不指定(推荐):以构建编号命名上传到发布库的文件存储目录名。
  • 指定:可能会覆盖同名存储目录下的文件。

包名

可选参数。

配置当前构建任务生成的软件包上传到软件发布库中的软件包名称。

  • 不指定(推荐):以文件原始名命名上传到发布库的文件名。包名推荐设置为空,可以上传构建包路径匹配的所有文件。
  • 指定:上传多个文件时,可能会存在被覆盖的情况。如果包名需要设置且存在多个文件上传的情况,推荐增加多个“上传软件包到软件发布库”的构建步骤。

自定义上传目录

可选参数。

填写自定义上传目录后,上传的软件包将上传至“自定义上传目录/版本号/软件包名”的目录下。

失败后是否继续运行

当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。

代码化构建

参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
version: 2.0 # 必须是2.0
steps:
  BUILD:
    - upload_artifact:
           inputs:
             path: "**/target/*.?ar"
             version: 2.1
             name: packageName
version: 2.0 # 必须是2.0
steps:
  BUILD:
    - upload_artifact:
           inputs:
             path: "**/target/*.?ar"
             version: 2.1
             name: packageName
             custom_upload_path: /phoenix-sample-ci/
             ignore_fail: true
表2 代码示例参数说明

参数

类型

说明

path

string

填写构建结果所在路径。

  • 构建包路径支持正则匹配,“**”递归遍历当前目录,“*”匹配0或者多个字符,“?”匹配一个字符。
  • 系统文件分隔符使用“/”,路径不区分大小写。
举例说明:
  • *.class:当前目录下匹配“.class”结尾的文件。
  • **/*.class:当前目录下递归匹配所有的“.class”结尾的文件。
  • test/a??.java:匹配“test”目录下以“a”开头后跟两个字符的java文件。
  • **/test/**/XYZ*:递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/test/def/ghi/XYZ123”。

version

string

可选参数。

填写发布版本号。

不填写(推荐):以构建编号命名上传到发布库的文件存储目录名。

填写:可能会覆盖同名存储目录下的文件。

name

string

可选参数。

填写构建生成的包名。

不填写(推荐):以文件原始名命名上传到发布库的文件名。

填写:上传多个文件时,可能会存在被覆盖的情况。

custom_upload_path

string

可选参数。

填写自定义上传目录后,上传的软件包将上传至“自定义上传目录/版本号/软件包名”的目录下。

ignore_fail

string

用于控制当前步骤执行失败后是否继续执行下一个步骤。
  • true:是。
  • 为空:否。

发布版本号及包名对上传的影响

图1 发布版本号及包名是否为空对上传的影响

相关文档