配置 GitHub Actions 自动化流程可实现测试、代码质量检查与自动发布。1. 在项目根目录创建 .github/workflows/ci.yml 文件,定义触发条件为推送至 main 或 develop 分支及 pull_request 至 main 分支,设置 Ubuntu 环境下多 PHP 版本矩阵测试,依次执行代码检出、PHP 环境搭建、composer 文件验证、依赖缓存与安装,最后运行 composer test。2. 确保 composer.json 中定义 test 脚本,如使用 PHPUnit、PHPCS、PHPStan 等工具,并在 require-dev 中安装对应包。3. 在 CI 工作流中添加静态分析步骤,运行 composer stan 和 composer check-cs 以执行 PHPStan 和 PHPCS 检查,提升代码质量。4. 可选配置自动发布到 Packagist:在 GitHub Secrets 中设置 PACKAGIST_EMAIL 与 PACKAGIST_API_TOKEN,新增 deploy job,当 git tag 推送时触发,通过 curl 调用 Packagist API 更新包信息。完成配置后,项目将具备完整的持续集成与自动化发布能力。

为你的 Composer 包设置 GitHub Actions 自动化,能帮你自动运行测试、检查代码质量和发布包。下面是如何一步步配置一个实用的自动化流程。
在项目根目录创建 .github/workflows/ci.yml 文件,这是 GitHub Actions 的工作流配置文件。
以下是一个适用于 PHP Composer 包的基础 CI 配置:
name: CI
<p>on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]</p><p>jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['7.4', '8.0', '8.1', '8.2']</p><pre class='brush:php;toolbar:false;'>steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: mbstring, dom
coverage: none
- name: Validate composer.json and composer.lock
run: composer validate --strict
- name: Cache dependencies
uses: actions/cache@v3
with:
path: vendor
key: composer-${{ hashFiles('**/composer.lock') }}
- name: Install dependencies
run: composer install --no-progress --no-suggest
- name: Run tests
run: composer testGitHub Actions 会运行 composer test,所以你需要在 composer.json 中定义它。
例如:
"scripts": {
"test": "phpunit"
}
如果你用的是 Pest、PHPCS、PHPStan 等工具,也可以组合命令:
"scripts": {
"test": "phpunit",
"check-cs": "phpcs --standard=PSR12 src/",
"stan": "phpstan analyse src/"
}
你可以在 CI 中依次运行这些检查。
在 CI 流程中加入代码质量检查,可以避免低级错误被合并。
修改工作流,在“Run tests”之后添加:
- name: Run PHPStan run: composer stan <ul><li>name: Check coding standards run: composer check-cs
确保相关工具已安装:
composer require --dev phpunit/phpunit squizlabs/php_codesniffer phpstan/phpstan
当打 tag 时,可以自动触发 Packagist 更新。
使用 Packagist 的 API token 设置自动通知:
在 GitHub 仓库的 Settings → Secrets and variables → Actions 中,添加 secret:
然后在 workflow 中添加发布 job:
deploy:
needs: test
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
<p>steps:</p><ul><li>name: Notify Packagist
uses: ramsey/composer-install@v2
with:
composer-command: update
working-directory: .</li><li>name: Call Packagist API
run: |
curl -X POST \
<a href="https://www.php.cn/link/8ebef38fe0b242f7c7a87e7f5b2de305">https://www.php.cn/link/8ebef38fe0b242f7c7a87e7f5b2de305</a> \
-F 'email=${{ secrets.PACKAGIST_EMAIL }}' \
-F 'apiToken=${{ secrets.PACKAGIST_API_TOKEN }}'基本上就这些。你的 Composer 包现在有了完整的自动化测试和可选的自动发布能力。每次推送或 PR 都会自动验证代码,减少人工出错。
以上就是如何为我的Composer包设置自动化的GitHub Actions?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号