发布软件包

更新时间:
2025-11-25

发布软件包

您可以将软件包发布到 Armory 仓库,实现集中、规范的版本管理。发布时可按需设置访问级别、是否强制发布,并选择是否同步到 ECMP 镜像仓库。

操作须知

  • 发布软件包后,系统将按以下流程判断是否可以正式发布:

    1. 敏感信息扫描:系统会自动对软件包进行扫描:
      • 扫描通过:进入下一步发布策略判断。
      • 扫描不通过:可在版本页“扫描版本”区域查看原因后,按需 取消发布版本 或找系统管理员 审核 通过后,进入下一步发布策略判断。
    2. 版本发布策略(由所属空间配置):扫描 / 审核通过后,根据所属空间的“软件包发布策略”决定最终发布结果:
      • 开启发布确认策略:软件包进入“待确认”状态,需要手动 确认发布版本
      • 未开启发布确认策略:软件包将自动成为正式发布版本。
  • 对于仓库中已存在的符合 SemVer 规范的版本,允许覆盖发布相同版本或语义等价的版本。SemVer 中的语义等价版本通常包括以下两种情况:

    • 包含构建版本号(+build-meta):如X.Y.Z+buildnum(例如1.2.3+20241209)。构建元数据仅作为附加信息,不参与版本号比较。
    • 版本号带有前缀(v):例如v1.2.3v仅作为版本号前缀,不影响 SemVer 核心部分的解析与比较,且不区分大小写。

    等价版本号示例:1.0.0等价于v1.0.0等价于V1.0.0等价于1.0.0+buildnum

前提条件

操作步骤

  1. 在开始搜索框或任意文件夹地址栏输入“cmd”,打开终端。

  2. 在终端执行如下命令,发布软件包。

    armory publish [./path/to/armory.json] --sync-to ECMP [--access <private | public>] [--force]
    

    参数说明如下:

    参数是否必选说明
    ./path/to/armory.json指定待发布的软件包配置文件 armory.json 的路径。
    推荐先 cdarmory.json 所在目录,再直接执行 armory publish;若在其他目录下执行,则需显式指定文件路径
    --sync-to设置软件包的同步目标,目前仅支持 ECMP。若需将软件包同步发布至 ECMP 镜像仓库,请指定 --sync-to ECMP
    --access设置软件包的访问级别,用于标识软件包是否对外可见,可选值为:私有(private)和受限(public)。未设置时,默认使用受限(public)。若需设置为公开(open),则需在发布后联系系统管理员进行 切换访问级别,各级别详细介绍请参见 访问级别
    -f, --force设置是否强制覆盖发布已存在的版本或语义等价版本。如果需要发布仓库中已存在的软件包版本,需要指定此参数以强制发布。在强制覆盖发布过程中,请根据提示信息输入当前要发布的完整版本号以确认操作

    下面介绍如何使用 armory publish 命令发布软件包,分别涵盖发布至 Armory 仓库以及同时发布至 Armory 和 ECMP 仓库两个场景。

    • 仅发布至 Armory 仓库

      以下示例展示如何将软件包“@software_factory/armory-client”发布至 Armory 仓库,并指定访问级别为“public”:

      armory publish @software_factory/armory-client/armory.json --access public
      
      # 回显如下内容,表示发布成功:
      Using json file: D:\software\Armory\@software_factory\armory-client\armory.json
      Using repository: http://10.12.**.**:3001(default)
      Checking armory.json configuration..
      Publishing package:  @software_factory/armory-client@1.6.0
      
      Windows@x86-64 > armory-v1.6.0-win-x64.exe (20.27 MB)      100%[======================>] done
      Windows@arm64 > armory-v1.6.0-win-arm64.exe (32.65 MB)     100%[======================>] done
      Linux@x86-64 > armory-v1.6.0-linux-x64.tar.gz (23.11 MB)   100%[======================>] done
      Linux@arm64 > armory-v1.6.0-linux-arm64.tar.gz (22.93 MB)  100%[======================>] done
      macOS@x86-64 > armory-v1.6.0-macos-x64.tar.gz (23.63 MB)   100%[======================>] done
      macOS@arm64 > armory-v1.6.0-macos-arm64.tar.gz (22.12 MB)  100%[======================>] done
      Package publish completed!
      
    • 同时发布至 Armory 和 ECMP 仓库

      以下示例展示如何将软件包“@software_factory/cloudnative-demo”同时发布至 Armory 和 ECMP 仓库,并指定访问级别为“public”:

      armory publish @software_factory/cloudnative-demo/armory.json --sync-to ECMP --access public
      
      # 回显如下内容,表示发布成功:
      Using json file: D:\software\Armory\@software_factory\cloudnative-demo\armory.json
      Using repository: http://10.12.**.**:3001(default)
      Checking armory.json configuration..
      Publishing package:  @software_factory/cloudnative-demo@1.3.2
      
      SylixOS@aarch64 > acc_server_1.0.0.tar (50 KB)             100%[======================>] done
      SylixOS@aarch64 > airpressure_server_1.0.0.tar (40 KB)     100%[======================>] done
      SylixOS@aarch64 > airspeed_server_1.0.0.tar (40 KB)        100%[======================>] done
      SylixOS@aarch64 > battery_server_1.0.0.tar (40 KB)         100%[======================>] done
      SylixOS@aarch64 > qt_client_sylixos_latest.tar (395.5 KB)  100%[======================>] done
      SylixOS@aarch64 > radar_server_1.0.0.tar (50 KB)           100%[======================>] done
      SylixOS@aarch64 > thermal_server_latest.tar (40 KB)        100%[======================>] done
      Package publish completed!
      
  3. 软件包发布成功后,可以在 Armory 仓库或 ECMP 仓库查看发布情况。

    • 在 Armory 仓库查看软件包:软件包发布结果根据其所属空间设置的“软件包发布确认”策略分以下 2 种情况:

      • 开启发布确认策略:发布版本将呈现“待发布”状态,需在界面执行 确认 / 取消发布版本 操作。

      • 未开启发布确认策略:发布版本直接为正式发布状态,无需额外确认。

    • 在 ECMP 仓库查看软件包:登录 ECMP,在左侧导航栏中单击镜像仓库,在镜像仓库界面,可以查看已发布软件包所包含的容器镜像资源。