【问题标题】:Testing in Gitlab CI/CD with different dependacies versions在 Gitlab CI/CD 中使用不同的依赖版本进行测试
【发布时间】:2021-02-09 07:58:52
【问题描述】:

我目前正在 Gitlab 上开发一个 (Laravel) 包,我想使用它的 CI/CD 管道进行自动化测试。

问题

我已经知道如何在 Gitlab 中建立管道,但我想要实现的是针对相同依赖项的不同版本进行自动化测试,以便继续检查与旧版本的兼容性并添加对即将推出的新版本的检查。

案例

我的 Laravel 包现在不是那么复杂,并且不使用某些特定或特定的 Laravel 功能,所以我希望它与更多版本的 laravel 兼容:我会在我的管道中触发不同的测试阶段以针对 laravel 5.6、5.7、5.8、6、7 和 8 运行我的测试。

问题

如何使用不同的laravel/framework 版本触发不同的测试阶段?
下载依赖项时,如果我用 '^' 定义它,composer 将选择可用的最新版本,那么我必须编辑哪些文件?

【问题讨论】:

  • 您找到解决方案了吗?同样的问题。
  • @CptDayDreamer 不,不是一个合适的解决方案,但我会尽快与答案分享一些问题,只需要在写之前检查一些事情

标签: testing continuous-integration gitlab dependencies gitlab-ci


【解决方案1】:

好的,我已经对问题进行了更多分析,并对此进行了一些考虑。

我写信不是为了正确回答我的问题,因为我希望有人最终会想出一个更好的解决方案/想法,但只是与大家分享一些困难是面临同样的问题。

首先:因为我正在为 Laravel 开发一个包,所以我不能将 laravel 声明为它的依赖,生产或开发,我的 laravel 项目需要将我的包声明为依赖。

第二:为了测试我的包与 laravel 的兼容性,我使用 orchestra/testbench 作为开发依赖项,至于它的 documentation,每个版本都针对一个单一且精确的 Laravel 版本,所以如果我想针对不同的 Laravel 版本测试我的包,我需要使用不同的 orchestra/testbench 版本对其进行测试。

第三:我的包唯一的依赖只是php 7.3,所以我可以使用Gitlab管道轻松测试这个版本和后续版本,并为每个使用docker镜像的php版本创建一个作业使用正确的 php 版本和最后一个作曲家。

结论

针对不同的 Laravel 版本测试 Laravel 包并非易事。

我想出的唯一想法,但没有尝试过,因为我放弃了它 aj 只是测试 php 版本(现在)是为我想要测试的每个 Laravel 版本创建一个分支并更新其 composer.jsondev-依赖于正确的orchestra/testbench 版本。

我可以对我的功能分支合并请求执行 php 测试,如果成功合并每个“laravel 分支”上的开发分支并在这些分支上执行 laravel 兼容性测试。

最后,如果每个 laravel 分支都通过了它的测试,或者至少是我决定保持开发/支持活跃的那些,我可以将开发分支合并到 master 上。

我不喜欢它

我决定避免所有这些,因为我不太确定如何在管道上实现所有这些,并且我强烈认为这只会给这个项目增加维护负担。

所以我只保留 php 作业以检查不同的 php 版本,这样我只需在我的gitlab-cy.yml 文件中复制/粘贴作业定义,并将 docker 映像版本相应地更改为新的 php 版本以进行测试.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 2016-01-01
    • 2020-10-10
    • 1970-01-01
    相关资源
    最近更新 更多