配置 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 自动化,能帮你自动运行测试、检查代码质量和发布包。下面是如何一步步配置一个实用的自动化流程。
1. 创建基本的 GitHub Actions 工作流文件
在项目根目录创建 .github/workflows/ci.yml 文件,这是 GitHub Actions 的工作流配置文件。
以下是一个适用于 PHP Composer 包的基础 CI 配置:
name: CIon:push:branches: [ main, develop ]pull_request:branches: [ main ]
jobs:test:runs-on: ubuntu-lateststrategy:matrix:php-version: ['7.4', '8.0', '8.1', '8.2']
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 test2. 确保 composer.json 中定义测试脚本
GitHub 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 中依次运行这些检查。
3. 添加静态分析和代码风格检查
在 CI 流程中加入代码质量检查,可以避免低级错误被合并。
修改工作流,在“Run tests”之后添加:
- name: Run PHPStan run: composer stan
- name: Check coding standardsrun: composer check-cs
确保相关工具已安装:
composer require --dev phpunit/phpunit squizlabs/php_codesniffer phpstan/phpstan
4. (可选)自动发布到 Packagist
当打 tag 时,可以自动触发 Packagist 更新。
使用 Packagist 的 API token 设置自动通知:
在 GitHub 仓库的 Settings → Secrets and variables → Actions 中,添加 secret:
PACKAGIST_EMAIL: 你的 Packagist 邮箱PACKAGIST_API_TOKEN: 在 Packagist.org 账户中生成的 API token
然后在 workflow 中添加发布 job:
deploy: needs: test runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Notify Packagistuses: ramsey/composer-install@v2with:composer-command: updateworking-directory: .
- name: Call Packagist APIrun: |curl -X POST https://www.php.cn/link/8ebef38fe0b242f7c7a87e7f5b2de305 -F 'email=${{ secrets.PACKAGIST_EMAIL }}' -F 'apiToken=${{ secrets.PACKAGIST_API_TOKEN }}'
基本上就这些。你的 Composer 包现在有了完整的自动化测试和可选的自动发布能力。每次推送或 PR 都会自动验证代码,减少人工出错。
以上就是如何为我的Composer包设置自动化的GitHub Actions?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/131631.html
微信扫一扫
支付宝扫一扫