我正在使用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
的私钥?任何帮助将不胜感激。
1条答案
按热度按时间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,显示如何传递机密:
在https://github.com/php-actions/example-composer上有一个使用私有依赖项的示例仓库可供参考。请查看它以获取实时工作项目。
关于Github Secrets的文档介绍了如何为Github创建它们。