【问题标题】:How to test with different versions of PHP in a GitHub Action如何在 GitHub Action 中使用不同版本的 PHP 进行测试
【发布时间】:2020-01-17 19:21:47
【问题描述】:

我有一些 PHP 代码,其中包含使用 PHPUnit 运行的测试,并希望在 GitHub Actions 上对其进行测试。我在他们的文档中找不到测试 PHP 包的方法。 我想使用不同版本的 PHP 进行测试,但他们只安装了最新的 7.3

【问题讨论】:

    标签: php github github-actions


    【解决方案1】:

    您可以在工作流程中添加setup-php 操作。如果不存在,它会安装您指定的 PHP 版本以及所需的扩展和各种工具,如 composer。它支持 GitHub Actions 和 PHP 版本支持的所有虚拟环境 >= 5.3

    例如,您可以有这样的工作流程

    jobs:
      run:    
        runs-on: ${{ matrix.operating-system }}
        strategy:
          matrix:
            operating-system: [ubuntu-latest, windows-latest, macOS-latest]
            php-versions: ['7.2', '7.3']
        name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
        steps:
        - name: Checkout
          uses: actions/checkout@v2
        - name: Install PHP
          uses: shivammathur/setup-php@v2
          with:
            php-version: ${{ matrix.php-versions }}
            extensions: intl #optional
            ini-values: "post_max_size=256M" #optional
        - name: Check PHP Version
          run: php -v
    

    注意:这将设置 PHP,您需要添加使用 composer 安装依赖项的步骤和使用 PHPUnit 运行测试的另一个步骤

    您可以在extensionsphp.ini 配置中指定所需的扩展名ini-values。这两个输入都是可选的,并以 CSV 作为输入。 php-version 输入是必需的。在上面的例子中,它将运行工作流并使用matrix.php-versions中指定的版本设置PHP环境,即7.27.3,您可以根据您的要求调整这些。

    【讨论】:

    • 谢谢,我正在寻找类似的东西。
    • @Shivam Mathur 我使用了你的包 setup-php@v2 并指定了7.3,然后检查了版本。确认正在运行7.3,但我的作曲家安装步骤之后直接失败并告诉我我在7.4.10。如果上一步php -v 告诉我7.3.10,这怎么可能?
    • @simonw16 您是否正在使用其他操作来安装作曲家依赖项。如果是,则它可能是基于 docker 的操作,而 setup-php 在主机容器上运行。我建议直接调用 composer 命令。如果没有,请在此处创建一个问题,指定您的工作流程。 github.com/shivammathur/setup-php/issues
    • @simonw16 与您的测试套件相同。例如,如果您使用 PHPunit,也可以直接调用它。
    • 这正是问题所在!我花了几个小时才弄清楚这一点。我以为这些动作是在主机容器上的,但事实证明它们大多是在它们自己的。手动运行解决了它。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2022-01-08
    • 1970-01-01
    • 2020-07-12
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多