spryker-sdk/upgrader

代码评估和升级工具


README

Build Status codecov Latest Stable Version Minimum PHP Version PHPStan

升级器

升级器工具简化了与 Spryker 版本保持项目同步的过程。

升级器通过以下方法之一更新项目:

  • 发布组(默认)—使用 Spryker 发布应用程序作为数据提供者。
  • Composer 更新—使用 composer update 命令;这是下面描述的默认策略。在此步骤中,升级器按照以下方式将项目更新到最新版本:
  1. 检查目标分支是否已在远程存储库中创建。如果分支存在,则过程停止。
  2. 检查项目中是否没有未提交的更改。如果有未提交的更改,则过程停止。
  3. 更新 Spryker 模块和依赖库,包括第三方库。
  4. 触发 Integrator 以调整项目类。
  5. 提交更改的文件。
  6. 将更改推送到远程存储库。
  7. 在远程存储库中创建 PR。

支持的战略

Composer 战略

  • 要启用 Composer 更新策略
export UPGRADE_STRATEGY=composer

Composer 更新策略

Composer install|update 使用两种策略。默认情况下,Composer 使用下载的包更新锁文件。

  • 要启用不下载包而更新 composer.lock 文件
export COMPOSER_NO_INSTALL=true

发布应用程序战略

在此策略中,升级器使用 Spryker 发布应用程序作为数据提供者以获取有关主要、次要和修补程序版本的数据。目前只能自动应用次要和修补程序。如果有可用的某些主要版本,升级器将在 PR 描述中添加相关信息。

  • 要启用发布组策略(默认)
export UPGRADE_STRATEGY=release-app

在此策略中,升级器包含顺序(默认)发布组需要处理器(一个接一个的发布组)。

顺序发布组处理器

  • 要启用顺序发布组处理器(默认)
export RELEASE_GROUP_PROCESSOR=sequential

顺序发布组处理器包含阈值,默认为每个升级器启动 30 个发布组。

  • 要更改阈值
export THRESHOLD_RELEASE_GROUP=<number>

软阈值

软主要阈值,默认为 0。

  • 要更改软主要阈值
export SOFT_THRESHOLD_MAJOR=<number>

软次要阈值,默认为 10。

  • 要更改软次要阈值
export SOFT_THRESHOLD_MINOR=<number>

软错误修复阈值,默认为 30。

  • 要更改软修补程序阈值
export SOFT_THRESHOLD_PATCH=<number>

为更新步骤添加 GitHub 配置

要使升级器执行此步骤,请应用以下配置:

  • GitHub 是默认的源代码提供者。如果您想手动定义它,请使用以下环境变量:
export SOURCE_CODE_PROVIDER=github

 

  • 将 GitHub 访问令牌添加到要更新的项目存储库,并具有推送分支和创建 PR 的权限:
export ACCESS_TOKEN=<GITHUB_TOKEN>

 

  • 添加拥有要更新项目存储库的组织名称
export ORGANIZATION_NAME=<ORGANIZATION>

 

  • 添加要更新项目的存储库名称
export REPOSITORY_NAME=<REPOSITORY>

为更新步骤添加 GitLab 配置

要使升级器执行此步骤,请应用以下配置:

  • 启用 GitLab 源代码提供者:
export SOURCE_CODE_PROVIDER=gitlab

 

  • 将 GitLab 访问令牌添加到要更新项目的存储库,并具有推送分支和创建 PR 的权限:
export ACCESS_TOKEN=<GITLAB_TOKEN>

 

  • 添加要更新项目的项目 ID
export PROJECT_ID=<PROJECT_ID>

 

  • 可选。对于自托管的源代码提供者,请添加您提供者的 URL
export SOURCE_CODE_PROVIDER_URL=<https://git.yourdomain.com>

为更新步骤添加 Azure 配置

要使升级器执行此步骤,请应用以下配置:

  • 启用 Azure 源代码提供者:
export SOURCE_CODE_PROVIDER=azure

 

  • 将 Azure 访问令牌添加到要更新项目的存储库,并具有推送分支和创建 PR 的权限:
export ACCESS_TOKEN=<AZURE_TOKEN>

 

  • 添加拥有要更新项目存储库的组织名称: 
export ORGANIZATION_NAME=<ORGANIZATION_NAME>

 

  • 添加您想要更新的项目名称或项目 ID:
export PROJECT_NAME=<PROJECT_NAME>
# OR
export PROJECT_ID=<PROJECT_ID>

 

  • 添加项目的存储库名称或存储库 ID:
export REPOSITORY_NAME=<REPOSITORY_NAME>
# OR
export REPOSITORY_ID=<REPOSITORY_ID>

 

报告配置

 

  • 可选。定义报告统计的执行环境
export APP_ENV=sprykerci

 

  • 可选。启用报告发送功能。默认情况下是禁用的。
export REPORTING_ENABLED=true

 

  • 可选。报告发送过程中的远程服务器请求授权的安全令牌。
export REPORT_SEND_AUTH_TOKEN=<TOKEN>

 

通过SDK更新项目

要更新项目,请从其目录运行以下命令

bin/console upgradability:php:upgrade

启用发布组集成器

 

  • 打开发布组集成器的特定行为(内部使用)。
export RELEASE_GROUP_INTEGRATOR_ENABLED=true

启用第三方依赖的最小更新

 

  • 打开最小化更新第三方依赖的特定行为。
export UPDATE_MINIMUM_DEPENDENCIES_ENABLED=true

启用更新功能到dev-master修复程序

 

  • 打开更新功能到dev-master的内部特定行为。
export UPDATE_FEATURES_TO_DEV_MASTER=true

启用项目更改集成

 

  • 在包更新步骤后打开集成器触发器
export INTEGRATOR_ENABLED=true

禁用安装新的Spryker包

 

  • 关闭安装新的Spryker包
export PACKAGE_UPGRADE_ONLY=true

更新后启用项目代码合规性

 

  • 在包更新步骤后打开代码合规性触发器
export EVALUATOR_ENABLED=true

指定发布组

 

  • 指定发布组以仅应用包
export RELEASE_GROUP_ID=123

指定拉取请求审阅者

 

  • 指定要添加为拉取请求审阅者的GitHub用户登录名
export PULL_REQUEST_REVIEWERS=<login_1,login_two,...>

安装

有关Spryker SDK安装说明,请参阅Spryker SDK