PHPUnit的GitHub操作失败



我正在使用GitHub Actions为创建的每个拉请求运行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 Action的错误。

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的私钥?任何帮助都将不胜感激。

需要私钥的不是mailparse,而是整个项目-私有存储库需要使用SSH身份验证-请参阅composer php操作手册:

要从专用存储库安装,必须使用SSH身份验证。为此生成一个SSH密钥对,并将其添加到您的私有存储库的配置中,最好只有只读权限。例如,在Github上,这可以通过使用部署密钥来实现。

使用Github Secrets将密钥对添加到项目中,并使用ssh_key和ssh_key_pub输入将它们传递到php操作/composer操作中。如果您的私有存储库存储在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创建它们。

最新更新