Azure DevOps 扩展

通过Azure DevOps源代码管理分支,使用 CodePush 扩展可以减少使开发/alpha/beta/等部署保持最新状态所需的工作量。 自动生成会负责其余操作,这意味着无需手动发布、推广或推出 App Center CLI。

这些任务可以与 Azure DevOps TFS 2015 Update 2 一起使用,并且适用于任何 Cordova 或 React Native项目。 此外,这些任务可以很好地与 Cordova 命令 任务或 React Native Bundle任务配对,这样你便可以轻松地"准备"平台特定的资产,稍后可将其释放到 CodePush。

CodePush 任务 + Cordova

快速入门

按照以下步骤通过 CodePush 自动发布和推广应用更新:

  1. 使用 App Center CLI生成一个新的访问令牌,该令牌的说明指示它将用于 AZURE DEVOPS CI (, appcenter tokens create -d "VSTS-CI" 例如)

    备注

    可以使用 App Center 门户中显示的 API 密钥,无需通过 App Center CLI 生成其他令牌。

  2. 从 Azure DevOps Marketplace 安装 CodePush 扩展

  3. 转到 Visual Studio Team Services 或 TFS 项目,单击"生成"选项卡,然后创建新的生成定义 ("+"图标) 已挂接到项目的适当源存储库。

    备注

    如果已有应用的生成定义设置,可以随意重新使用它。 CodePush 不需要不同的生成/发布定义来工作。

  4. 单击 "添加生成步骤...", 然后根据应用类型或要求从"部署"类别中选择以下任务之一:

    1. CodePush - (Cordova) - 如果要发布 Cordova 应用的更新,请选择此项。 有关 工作原理的详细信息 ,请参阅参考文档。

    2. CodePush -如果您不发布 Cordova 应用程序的更新,或者除了特定于平台的任务为您提供更大的灵活性,请选择此项。 有关其工作原理的详细信息,请参阅 参考文档

  5. 使用在步骤 #1 中创建或检索到的访问令牌配置发布任务,并指定应用名称 ( MyApp-iOS) 、部署名称和所有其他必需参数。 有关每个选项的详细信息,请参阅下面的参考文档。

  6. 单击 " 队列生成 " 按钮或将更改推送到存储库以运行新定义的生成管道

  7. 运行 CodePush-ified 应用以查看自动部署的更改!

前进后,您可以选择利用 CodePush-升级 任务自动将更新发布到一个部署 (例如, 过渡) 然后自动将其升级到另一个部署 (例如,根据需要进行 生产) 。 此任务非常适合于 Azure DevOps Release Management 功能,在该功能中,你可以定义多个环境 (每个环境都有自己的部署管道) ,还可以通过手动审批者来实现更新,而无需牺牲要验证的任何控件。

全局配置凭据

除了在每个生成任务实例中直接指定访问令牌 (如 "快速入门") 部分中所述,还可以在全局范围内配置 CodePush 凭据,并根据需要在每个生成或发布定义中引用它们。 全局凭据可以简化跨团队使用 CodePush 的工作,提高安全性,因为每个生成和发布定义不必手动配置帐户凭据。 若要全局配置你的凭据,请执行以下步骤:

  1. 如上文所述,生成或检索你的访问令牌

    备注

    如果要检索以前生成的访问令牌,可以运行 命令,并查找具有最初创建令牌 appcenter token list 时指定的说明的令牌。

  2. 转到Visual Studio Team Services TFS 项目,然后单击右上角的齿轮图标

  3. 单击"服务 " 选项卡

  4. 单击" 新建服务终结点", 然后选择 "CodePush"

  5. 为新终结点指定名称 (例如"MyApp-iOS") 并输入在步骤 #1

    服务终结点

  6. 每当将 CodePush 任务添加到生成或发布定义时,#5中选择的名称选择此终结点。

  7. 发布应用更新!

任务参考

除了自定义服务终结点外,此扩展还参与以下生成和发布任务:

  • CodePush - Release - 允许自动将常规用途内容发布到 CodePush 服务器。 此任务提供最大的灵活性,但仅在特定于平台的任务(例如 Cordova ()不适合) 才使用。

  • CodePush - (Cordova) - 允许自动生成和发布 Cordova 应用更新。 表示特定于 Cordova 的简化版常规用途发布任务,建议用于所有 Cordova 方案。

  • CodePush - Patch - 允许自动修改以前发布的更新。 此选项对于以下情况非常有用,例如增加最初"已测试"发布的发布 (例如,向) 用户推出,或启用默认禁用 25% 的发布。

  • CodePush - 提升- 允许自动将以前发布的更新从一个部署提升到另一个部署 (例如过渡生产 -> ) 。

CodePush - 发布

允许你将 CodePush 更新App Center服务器。 此任务的行为等效于 App Center CLI 中的 命令, appcenter codepush release 包括以下选项:

  1. 身份验证方法 -指定要如何向 App Center 服务器进行身份验证。 可用选项是:

    1. 访问令牌 -允许你直接指定任务的访问令牌。 此值可由 App Center CLI 生成,或在 autoprovisioned 帐户和应用后由 App Center 门户提供给你。

    2. 服务终结点 (CodePush) -允许引用全局配置的 CodePush 服务终结点。

    3. 服务终结点 (HockeyApp) -允许引用全局配置的 HockeyApp 服务终结点。

  2. 应用所有者/应用名称 (字符串,必需的) -要发布其更新 (的应用所有者和应用的名称(例如) ) <ownerName>/MyApp-iOS

  3. 部署 (字符串,必需的) -要将更新发布到的部署的名称。 默认值为 " 过渡"。

  4. 更新内容路径 (文件路径,必需的) -文件或目录的路径,该文件或目录包含你要发布的更新。 对于 Cordova,它应该是特定于平台的 www 文件夹 (例如, 平台/ios/www) ,对于响应本机,它应指向生成的 JS 包文件 (例如, ios/main.js捆绑) 或包含你的 js 包和资产的目录,具体取决于你使用的是 "响应本机资产" 系统。 查看 CLI 文档 了解更多详细信息。

  5. 目标二进制版本 (字符串,必需) - Semver 表达式,该表达式指定此版本面向的二进制应用版本 (例如1.1.0、~ 1.2.3) 。 查看 CLI 文档 了解更多详细信息。

更新元数据

除了基本属性,以下选项还提供对版本的更高级控制,以及如何将其分发给最终用户:

  1. (字符串) 的推出-此版本应立即可用于的用户的百分比。 默认值为 100%

  2. 说明*(字符串)* - 此版本中对应用所做的更改的说明。 在发布定义中Azure DevOps此任务时,可以将此字段设置为 变量,以继承为发布 $(Release.ReleaseDescription) 提供的说明。

  3. 必需*(布尔)* - 指定是否应当将此版本视为必需版本。 默认为 false

  4. 已禁用*(布尔)* - 指定是否应该立即下载此版本。 默认为 false

CodePush - (Cordova)

允许你将 Cordova 应用 CodePush 更新App Center服务器。 它通过) 自动生成 (发布内容,并推断应用的版本以适当定位更新,从而简化常规用途发布任务的体验。 cordova prepare 此任务的行为等效于 App Center CLI 中的 命令, appcenter codepush release-cordova 包括以下选项:

  1. 身份验证方法 - 指定要如何使用 App Center 进行身份验证。 可用选项是:

    1. 访问令牌 - 允许直接指定任务的访问令牌。 此值可能是由 App Center CLI 生成的,或者由 App Center 门户在自动预配帐户和应用后提供。

    2. 服务终结点 (CodePush) - 允许引用全局配置的 CodePush 服务终结点。

    3. HockeyApp (服务终结点) - 允许引用全局配置的 HockeyApp 服务终结点。

  2. 应用所有者/ 应用名称 (字符串, 必需) - 要发布更新的应用的名称,例如 (应用 <ownerName>/MyApp-iOS) 。

  3. 部署*(字符串,)* - 要发布更新的部署的名称。 默认为暂

  4. 生成*(布尔)* - 指定是否要运行任务 cordova build 而不是 cordova prepare 。 如果你的应用包含你要触发的 Cordova 生成任务,则此选项会很有用。 默认为 false

更新元数据

除了基本属性,以下选项还提供对版本的更高级控制,以及如何将其分发给最终用户:

  1. (字符串) 的推出-此版本应立即可用于的用户的百分比。 默认值为 100%

  2. 描述 (字符串) -在此版本中对应用所做的更改的说明。 当在 Azure DevOps release 定义中使用此任务时,可以将此字段设置为 $(Release.ReleaseDescription) 变量以继承提供给发布的说明。

  3. 目标二进制版本 (字符串,必需) - Semver 表达式,该表达式指定此版本面向的二进制应用版本 (例如1.1.0、~ 1.2.3) 。 查看 CLI 文档 了解更多详细信息。 选择 Auto-Detect 将自动从 config.xml 文件中读取应用程序的版本。

  4. 必需 (布尔) -指定是否应将此版本视为必需的。 默认为 false

  5. 禁用 (布尔) -指定是否应立即下载此版本。 默认为 false

CodePush-修补程序

允许您更新以前发布的更新的元数据。 此任务的行为与 appcenter codepush patch APP CENTER CLI 中的命令等效,并包括以下选项:

  1. 身份验证方法 -指定要如何通过 CodePush 服务器进行身份验证。 可用选项是:

    1. 访问令牌 -允许你直接指定任务的访问令牌。 此值可以是由 CodePush CLI 生成的,也可以由 App Center 门户在 autoprovisioned 你的帐户和应用后提供给你。

    2. 服务终结点 (CodePush) -允许引用全局配置的 CodePush 服务终结点。

    3. 服务终结点 (HockeyApp) -允许引用全局配置的 HockeyApp 服务终结点。

  2. 应用所有者/ 应用名称 (字符串, 必需) - 包含要更新版本的应用的名称 (例如 <ownerName>/MyApp-iOS) 。

  3. Deployment (String, required) - 包含要更新的发布的部署的名称。 默认为暂

  4. 发布标签*(字符串,必需*) - 要更新元数据的发布的标签 (例如 v23) 。 选择 " 最新"将更新指定部署中的最新版本。 默认为"最新"。

更新元数据

默认情况下,修补操作不会修改任何发布属性,因此,若要更新任何元数据,需要更改此组中以下一个或多个选项的默认值。

  1. 推出*(字符串)* - 此版本应立即可供用户使用的百分比。 选择 " 继承"将保留这些属性未修改。 默认 继承

  2. 说明*(字符串)* - 此版本中对应用所做的更改的说明。 选择 " 继承"将保留这些属性未修改。 在发布定义中Azure DevOps此任务时,可以将此字段设置为 变量,以继承为发布 $(Release.ReleaseDescription) 提供的说明。 默认 继承

  3. 目标 二进制版本 (String, 必需) Semver 表达式,指定此版本面向的二进制应用版本 (例如 - 1.1.0、~1.2.3) 。 有关 更多详细信息, 请参阅 CLI 文档。 选择 " 继承"将保留这些属性未修改。 默认 继承

  4. 必需*(布尔)* - 指定是否应当将此版本视为必需版本。 选择 " 继承 " 将不修改这些特性。 默认值为 " 继承"。

  5. 禁用 (布尔) -指定是否应立即下载此版本。 选择 " 继承 " 将不修改这些特性。 默认值为 " 继承"。

CodePush-升级

允许你将以前发布的更新从一个部署升级到另一个 (例如,过渡 -> 生产) ,并支持使用 Azure DevOps Release Management从 CI 环境轻松处理多个应用环境。 此任务的行为与 appcenter codepush promote 管理 CLI 中的命令等效,并包括以下选项:

  1. 身份验证方法 -指定要如何通过 CodePush 服务器进行身份验证。 可用选项是:

    1. 访问令牌 -允许你直接指定任务的访问令牌。 此值可以是由 CodePush CLI 生成的,也可以由 App Center 门户在 autoprovisioned 你的帐户和应用后提供给你。

    2. 服务终结点 (CodePush) -允许引用全局配置的 CodePush 服务终结点。

    3. 服务终结点 (HockeyApp) -允许引用全局配置的 HockeyApp 服务终结点。

  2. 应用所有者/应用名称 (字符串,必需的) -具有要进行升级的部署的应用的名称 (例如 <ownerName>/MyApp-iOS) 。

  3. 源部署 (字符串) -要从中升级最新版本的部署的名称。 默认值为 " 过渡"。

  4. 目标部署 (字符串) -要将发布升级到的部署的名称。 默认为 生产

更新元数据

默认情况下,当发布从一个部署升级到另一个部署时,新创建的版本不仅会继承更新内容,还会 "继承" (例如 description) 。 这可确保要提升的与在源部署中测试的完全相同。 但是,如果要在目标部署中重写新创建的版本中的一个或多个属性 (例如,由于在环境环境) ,可以使用 mandatory 以下字段:

  1. 推出*(字符串)* - 此版本应立即可供用户使用的百分比。 默认为 100%

  2. 说明*(字符串)* - 此版本中对应用所做的更改的说明。 选择 " 继承"将使用正在提升的版本中的说明。 在发布定义中Azure DevOps此任务时,可以将此字段设置为 变量,以继承为发布 $(Release.ReleaseDescription) 提供的说明。 默认 继承

  3. 目标二 (字符串) Semver 表达式,指定此版本面向的二进制应用版本 (例如 - 1.1.0、~1.2.3) 。 选择 " 继承"将使用正在提升的版本中的目标二进制版本属性。 默认 继承。 有关 更多详细信息, 请参阅 CLI 文档。

  4. 必需*(布尔)* - 指定是否应当将此版本视为必需版本。 选择 " 继承"将使用要提升的版本中的必需属性。 默认 继承

  5. 已禁用*(布尔)* - 指定是否应该立即下载此版本。 选择 " 继承"将使用正在提升的版本中禁用的属性。 默认 继承