0

0

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

下次还敢

下次还敢

发布时间:2025-10-12 12:57:01

|

981人浏览过

|

来源于php中文网

原创

配置 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

on: push: branches: [ main, develop ] pull_request: branches: [ main ]

jobs: test: runs-on: ubuntu-latest strategy: 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 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”之后添加:

米歌MWM实用企业网站管理系统3.1
米歌MWM实用企业网站管理系统3.1

米歌_实用企业网站管理系统 Mixge Web Manage (简称:米歌MWM),我们的与众不同在于:彻底颠覆了传统网站的固定模式变成可操控模式。米歌WMW简单,实用,灵活,为非专业人士而设计开发。正如, 第一步添加栏目,第二步发布内容,剩下的就是一些设置。新增功能:1.增加了右侧的联系方式(包括电话、QQ、MSN和旺旺);2.自动缩略图功能,在首页提取和栏目提取自动显示缩略图,并且在文章插入大

下载
- name: Run PHPStan
  run: composer stan
  • 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/')

steps:

  • name: Notify Packagist uses: ramsey/composer-install@v2 with: composer-command: update working-directory: .
  • name: Call Packagist API run: | curl -X POST \ https://www.php.cn/link/8ebef38fe0b242f7c7a87e7f5b2de305 \ -F 'email=${{ secrets.PACKAGIST_EMAIL }}' \ -F 'apiToken=${{ secrets.PACKAGIST_API_TOKEN }}'

基本上就这些。你的 Composer 包现在有了完整的自动化测试和可选的自动发布能力。每次推送或 PR 都会自动验证代码,减少人工出错。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

154

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

419

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

466

2023.11.27

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

440

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

178

2023.10.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.1万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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