如何为我的Composer包设置自动化的GitHub Actions?

下次还敢
发布: 2025-10-12 12:57:01
原创
965人浏览过
配置 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?

为你的 Composer 包设置 GitHub Actions 自动化,能帮你自动运行测试、检查代码质量和发布包。下面是如何一步步配置一个实用的自动化流程。

1. 创建基本的 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 test
登录后复制

2. 确保 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”之后添加:

Poixe AI
Poixe AI

统一的 LLM API 服务平台,访问各种免费大模型

Poixe AI 61
查看详情 Poixe AI
- 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
登录后复制

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/')
<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中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号