burdamagazinorg / update-tester
更新测试辅助工具
Requires
- php: >7.3
- composer/composer: ^1.4
- consolidation/robo: ^1.0
- drush/drush: ~9.0||~10.0
- symfony/filesystem: ^3.2
This package is auto-updated.
Last update: 2024-08-29 04:31:16 UTC
README
仍在开发中
更新测试器
这是用于测试使用composer打包的Drupal 8网站更新的辅助工具。它设计用于测试环境中使用。
开始使用
此项目应使用composer全局安装。它提供了测试Drupal 8网站更新的功能。
测试脚本将克隆Drupal 8网站(文件和数据库),然后使用 composer outdated
获取新版本,并更新composer.json以包含新版本。在此基础上,将执行 composer update
来更新包和模块。相同的脚本还将执行克隆网站中已更新代码的Drupal 8所需的更新钩子和实体字段更新。
这将允许早期发现Drupal 8网站的潜在破坏性更新。
先决条件
此项目依赖于composer和drush。它们应安装在系统上。
确保composer可以无间断地工作,这意味着
- 对于私有存储库,ssh密钥已正确设置和配置,因此不需要请求密码
- 提供github.com的认证令牌,因为composer会向github发送大量请求,并且它必须使用令牌来获取访问权限,否则github.com将切断请求。更多信息请参阅Composer文档API速率限制和OAuth令牌
安装
要安装项目,只需全局要求它
composer global require "burdamagazinorg/update-tester"
作为此项目的依赖项,将安装 consolidation/robo
包。为了运行提供的脚本,robo
命令必须全局可用。这就是为什么应确保全局composer脚本是命令路径中的可用。如果不是这种情况,则执行以下命令足以将全局composer脚本路径添加到执行路径中
export PATH="$HOME/.composer/vendor/bin:$PATH"
注意:如果使用 robo
进行项目,必须确保从项目脚本路径执行它。例如
/my/project/path/vendor/bin/robo
运行更新测试
要为您的已安装Drupal 8网站执行更新测试,可以执行以下命令
update-tester.php test:update /source/project/path /clone/destination/path --db-name=drupal_clone --db-username='user_clone' --db-password='password_clone'
Travis CI集成
理想情况下,更新测试应每天执行一次,以检查更新是否仍然有效,如果不有效,则确定问题。
为此,必须在您想要测试更新的分支(例如,master和develop)上启用Travis CI cron测试触发器。下一步是使用Travis CI环境变量$TRAVIS_EVENT_TYPE
区分cron运行与正常的pull request或merge request运行,因为更新测试器应在cron运行时执行。在网站安装完成后或运行默认网站测试之前,应执行更新测试器。这可以通过在travis.yml文件中添加以下语句来实现
[ "$TRAVIS_EVENT_TYPE" = "cron" ] && composer global require "burdamagazinorg/update-tester" && export PATH="$HOME/.composer/vendor/bin:$PATH" && update-tester.php test:update /source/project/path /clone/destination/path --db-name=drupal_clone --db-username='user_clone' --db-password='password_clone'
可能的改进
- 添加任务回滚功能,然后它们可以更容易地组合而不会在失败时破坏任何东西
- 对
test:update
命令进行额外的重构 - 添加对命令和任务的测试