如何在 GitHub Action 中使用不同版本的 PHP 进行测试

jos*_*eck 15 php github github-actions

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

Shi*_*hur 21

您可以在工作流程中添加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
Run Code Online (Sandbox Code Playgroud)

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

您可以在 中指定所需的扩展extensions以及在 中指定所需的php.ini配置ini-values。这两个输入都是可选的,并以 CSV 作为输入。该php-version输入是必需的。在上面的示例中,它将运行工作流并使用matrix.php-versionsie7.2和 中指定的版本设置 PHP 环境7.3,您可以根据需要进行调整。

  • @simonw16您是否使用其他操作来安装作曲家依赖项。如果是,则可能是基于 docker 的操作,而 setup-php 在主机容器上运行。我建议直接调用composer命令。如果没有,请在此处创建一个问题,指定您的工作流程。https://github.com/shivammathur/setup-php/issues (3认同)