laravel PHPUnit的GitHub操作失败

tktrz96b  于 2022-11-18  发布在  PHP
关注(0)|答案(1)|浏览(141)

我正在使用GitHub操作为每个创建的拉取请求运行PHP CS Fixer和PHPUnit。我为PHPUnit实现了这个GitHub操作,我的YML文件如下。

name: PHPUnit Tests

on: [push]

jobs:
  build-test:
    name: PHPUnit Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - uses: php-actions/composer@v5
        with:
          php_extensions: mailparse pdo_mysql
          dev: no
          args: --profile --ignore-platform-reqs

      - name: PHPUnit Tests
        uses: php-actions/phpunit@v3
        with:
          php_version: 8.1

我有下面的错误从PHPUnit操作。

994393dc58e7: Layer already exists
1e74372f6dff: Pushed
php-latest-mailparse-pdo_mysql-build2: digest: sha256:17078db8c8e36a72ce937d8b5f98eb0c0b814b91a2c20e14788039763b722300 size: 2831
Docker tag: docker.pkg.github.com/synega/connect/php-actions_composer_connect:php-latest-mailparse-pdo_mysql-build2
No private keys supplied
Command: composer install --no-dev --no-progress --no-interaction --profile --ignore-platform-reqs
Error: Process completed with exit code 1.

我如何/在哪里可以得到mailparse的私钥?任何帮助将不胜感激。

nmpmafwu

nmpmafwu1#

并不是mailparse特别需要私钥,而是整个项目--私有仓库需要使用SSH身份验证--参见composer-php-actions手册:
要从私有仓库进行安装,必须使用SSH验证。为此生成一个SSH密钥对,并将其添加到私有仓库的配置中,最好只有只读权限。例如,在Github上,这可以通过使用部署密钥来完成。
使用Github Secrets将密钥对添加到您的项目中,并使用ssh_key和ssh_key_pub输入将它们传递给php-actions/composer操作。如果您的私有仓库存储在www.example.com之外的其他服务器上github.com,您还需要通过ssh_domain传递域。
示例yaml,显示如何传递机密:

jobs:
  build:

    ...

    - name: Install dependencies
      uses: php-actions/composer@v6
      with:
        ssh_key: ${{ secrets.ssh_key }}
        ssh_key_pub: ${{ secrets.ssh_key_pub }}

https://github.com/php-actions/example-composer上有一个使用私有依赖项的示例仓库可供参考。请查看它以获取实时工作项目。
关于Github Secrets的文档介绍了如何为Github创建它们。

相关问题