出版球体

该指南包括发布一个球体所需的步骤。

介绍

创建orb之后,可以使用语义版本控制标签,orb将公开出现在Orb注册表

Orb发布过程

宝珠开发工具包

属性发布orb宝珠开发工具包, 而不是手动,使用下面一节中列出的步骤,语义发布是很直接的。中可以找到发布过程的简化版本README.md这是由生成的文件circleci ORB的init在创作过程开始时命令。

发布新版本

下面的步骤展示了如何发布orb的新语义版本。属性生成orb示例项目之后circleci ORB的init命令时,您将自动迁移到α分支。分支的名称并不重要,只要确保在存储库的非默认分支中创建任何新特性、bug修复或补丁即可。一旦您添加或更新了代码并准备发布版本,请继续执行以下步骤。

  1. 打开一个新的拉请求的默认分支。
    新版本仅在合并到默认分支时发布。所包括的.circleci / config.yml配置文件自动测试,并发布你的球体。默认情况下,集成测试单元测试为此CI管道启用。强烈建议您至少添加集成测试,以确保orb的功能正常。如果您的orb不使用脚本,或者您此时不希望添加单元测试,则蝙蝠/运行作业可以被注释掉。

  2. 确保所有的测试都通过了。
    您可以直接在GitHub上的Pull请求中查看测试结果,或者在CircleCI.com上查看整个管道。GitHub报告的Orb测试结果检查pull请求的API

  3. 标题拉请求与特殊的Semver标签。
    所包含的CI配置使用球型工具奥布如果提交消息包含指定的正确标记,则自动发布在默认分支上通过测试的orbsemver释放。
    标签模板是这样的:[semver: <增加>],在那里<增加>为下列值之一所取代:

    增量 描述
    主要 发布1.0.0版本递增
    次要 发出x.1.0递增发布
    补丁 发布一个x.x.1递增的版本
    跳跃 不发布发布

    例如,从中发布orb的第一个主要公共版本α分支,您的pull请求可能被命名第一个orb发布。一个球体的第一次重大版本 - 拉请求

  4. “南瓜”合并。
    执行一个南瓜merge在合并到默认分支时不仅将分支压缩为单个commit,而且还将Pull请求的标题作为提交消息。挤压合并PR,保留永远的头衔

  5. 完成了!
    如果你去CircleCI应用你可以查看你的ORB发布管道的进展。当管道完成后,您可以搜索在您的ORBOrb注册表

Orb发布过程

如果你想更深入到ORB开发工具包,并获得看看组件如何协同工作来发布你的天体,这一部分是给你的。

circleci ORB的init命令是负责克隆的ORB模板库对于您的orb,包括使用我们的最佳orb开发管道设计的预定义的CircleCI配置文件。

包括在/.circleci目录是与工作流包含的击穿一个自述。

您的ORB管道在两个工作流程发生:

测试包

测试包是前两个工作流程的运行,每个代码提交到库时间将执行任何分支。

测试包工作流程是负责这种情况发生在发布之前ORB的一个开发版本的所有测试。一旦ORB的开发版本可用于运行测试的集成测试(这发生在一个工作流程)只能运行。

宝珠的开发版本中创建球型工具/发布-dev的工作,这项工作需要访问个人访问令牌,它被固定在受限制的背景下。以这种方式使用受限制的背景下可以让我们存储我们作为环境变量,使得工作只能由别人能够访问上下文触发的道理,因此,“保护”发布阶段。

工作流运行如下:

  • 不需要到个人访问令牌的特殊访问测试运行,这一阶段可以从开源引入请求运行。
  • 工作流被放置收藏对于手动批准手动批准出版发展的天体工作流将通过CircleCI应用程序中的警告提示等待按钮点击,然后再继续。
  • 一旦手动审批被授权,后续作业将被自动授权,并可以访问受限制的上下文。当我们希望允许针对orb构建开源的拉请求时,这一点特别有用,同时也给了我们一个确保没有恶意代码的机会。
  • 工作流已被批准后,球型工具/发布-dev的作业将发布您的ORB的开发版本两次:

    出版发展标签 描述
    <命名空间> / @dev:<分支> 链接到分支名称的开发标记。对于配置中的测试很有用。
    <名称> / < orb > @dev: $ {CIRCLE_SHA1:0:7} 一个开发标记特定于该SHA。用于以下工作流程。

您可以了解更多有关的测试工作Orb测试方法指南。

集成 - test_deploy

集成 - test_deploy是在orb开发管道中运行的第二个也是最后一个工作流。此工作流是通过API在末尾自动触发的测试包工作流。这种新的工作流具有访问惟一性开发版这是由所产生的ORB的测试包工作流。

管道的第二阶段运行集成测试,测试刚刚加入并发布到开发版新的ORB的功能..

集成测试后,只有默认分支,部署工作将运行。orb-tools / dev-promote-prod-from-commit-subject负责获取orb特定于SHA的开发版本,并将其提升为一个语义版本化的公共发行版。

- 球型工具的/ dev-促进-PROD-从提交 - 主题:ORB的名称:<命名空间> / 背景:<出版上下文>添加-PR-评论:假故障如果-semver-未指出:真正的发布版本标签:假要求: - 集成测试-1的过滤器:分支:仅<默认的系统分支>

fail-if-semver-not-indicated参数默认设置为true,以确保任何承诺没有合适的semver标签在提交标题中,导致构建失败。

您可以选择启用其他特性,比如将版本标记发布回GitHub,以及通过评论自动向pull请求发布新版本。

发布版本标签到GitHub

您的CircleCI orb最终将托管并显示在Orb注册表不过,如果你想跟踪您在GitHub上发布,就可以自动发布从CircleCI一个版本标记。

要将标签推送到GitHub, CircleCI需要一个有写访问部署关键。按照链接的文档生成和添加您的部署密钥。完成后,您将看到生成的“指纹”“所以:我:鱼翅:G:呃:公关::T”该密钥。添加您的SSH指纹您orb-tools / dev-promote-prod-from-commit-subject通过作业SSH指纹参数。

- orb-工具/开发-推广-提交-主题:发布-版本-标签:真正的ssh-指纹:“SO:ME:FIN:G:ER:PR:IN:T”

属性的所有可用命令、作业和参数球型工具奥布Orb注册表