新闻中心

如何为你的Composer包配置自动化的发布流程_使用GitHub Actions在打tag后自动发布到Packagist

2025-12-05
浏览次数:
返回列表
配置GitHub Actions可实现PHP Composer包在打tag后自动发布到Packagist:1. 确保包已提交至Packagist并记录用户名与API Token;2. 在Packagist页面启用Auto-update选项以支持自动拉取;3. 在项目中创建.github/workflows/publish-packagist.yml工作流文件,监听tag推送并使用php-actions/packagist-publish@v6动作通知Packagist;4. 将PACKAGIST_USERNAME和PACKAGIST_API_TOKEN存入GitHub Secrets以通过认证。完成后,每次执行git push origin v1.2.0等标签推送,都将触发自动发布流程,实现无缝版本同步。

如何为你的composer包配置自动化的发布流程_使用github actions在打tag后自动发布到packagist

想让你的 PHP Composer 包在打 tag 后自动发布到 Packagist?用 GitHub Actions 可以轻松实现自动化发布流程。你只需要配置好工作流,之后每次 git tag 推送到仓库时,Packagist 就会自动同步最新版本,无需手动操作。

1. 确保你的包已提交到 Packagist

自动化发布的前提是你的包已经在 Packagist.org 上注册。如果你还没提交:

  • 访问 https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19
  • 登录后点击右上角 "Submit" 按钮
  • 填入你的 GitHub 仓库地址(如:yourname/your-package
  • 提交后 Packagist 会抓取 composer.json 并创建条目

注意:如果你使用的是 Packagist.com(私有包平台),步骤类似,但需确保项目已正确关联。

2. 在 Packagist 中启用自动更新(Webhook)

Packagist 支持通过 Webhook 自动拉取新版本。虽然 GitHub Actions 能主动通知,但开启这个更稳妥。

  • 进入你的包在 Packagist 的页面
  • 点击右上角的“Manage”按钮
  • 勾选 “Auto-update” 选项

这样每次推送 tag,Packagist 都会尝试拉取最新代码。

3. 创建 GitHub Actions 工作流文件

在你的项目根目录创建 .github/workflows/publish-packagist.yml 文件:

Mistral AI Mistral AI

Mistral AI被称为“欧洲版的OpenAI”,也是目前欧洲最强的 LLM 大模型平台

Mistral AI 182 查看详情 Mistral AI

name: Publish to Packagist

on: push: tags:

  • 'v*' # 匹配 v1.0.0 这类标签
  • '*' # 或者任意 tag 都触发

jobs: publish: runs-on: ubuntu-latest steps:

  • name: Notify Packagist uses: php-actions/packagist-publish@v6 with: username: ${{ secrets.PACKAGIST_USERNAME }} apiToken: ${{ secrets.PACKAGIST_API_TOKEN }} repository: ${{ github.repository }}

这个工作流会在你推送任何 tag 时触发,并通知 Packagist 更新。

4. 添加 Packagist 凭据到 GitHub Secrets

为了安全地调用 Packagist API,你需要将凭据保存为 GitHub Secrets:

  • 进入 GitHub 仓库的 Settings > Secrets and variables > Actions
  • 添加两个密钥:
PACKAGIST_USERNAME → 你的 Packagist 用户名
PACKAGIST_API_TOKEN → 在 Packagist 的 API Tokens 中生成的 token

API Token 获取路径:登录 Packagist → 点击头像 → API Tokens → 生成新 Token。

完成后,每次运行 git tag v1.2.0 && git push origin v1.2.0,GitHub Actions 就会自动通知 Packagist 更新版本。

基本上就这些。不复杂但容易忽略的是权限和标签格式匹配。确保 tag 被正确推送,且 secrets 命名无误。自动化之后,发版就像提交代码一样自然了。

以上就是如何为你的Composer包配置自动化的发布流程_使用GitHub Actions在打tag后自动发布到Packagist的详细内容,更多请关注php中文网其它相关文章!


# php  # 加载  # 如何正确  # 有什么区别  # 尼克  # 欧洲  # 如果你  # 就会  # 的是  # 工作流  # ubuntu  # github  # json  # git  # js  # composer  # 为你  # 外卖托管和营销推广  # 谷歌seo难学吗  # linux搭建推广网站  # 平台seo推广方案外推  # 大专生网站建设  # seo直跳  # 网站竞价推广只信m火18星来  # 做国外网站优化网站  # 大创项目的营销推广  # 城联亿家营销推广 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 在Go语言中利用后缀数组处理多字符串:实现高效文本匹配与自动补全  J*a TimerTask中HashMap意外清空的深层原因与解决方案  UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】  顺丰快递查询系统 官方正版查询入口  天眼查企业查询官网入口 天眼查官方网页版查询  必由学官方平台入口 必由学在线课堂登录地址  批改网学生版PC登录 批改网官网登录系统入口  XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法  JUnit5/Mockito:优雅测试内部依赖与异常处理的实践  PHP中获取MongoDB服务器运行时间(Uptime)的专业指南  微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法  内存检查:在VS Code中调试C++时的内存视图  MAC怎么在地图App里使用“四处看看”_MAC体验部分城市的3D实景街景  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口  小米14应用无法联网原因分析_小米14网络权限修复  深入理解J*aScript Promise异步执行与微任务队列  优化LangChain文档加载与ChromaDB集成:解决多文档处理与分块问题  mc.js游戏直达 mc.js网页免下载版本秒进地址  MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具  Windows7怎么硬盘安装 Windows7提取ISO镜像到非系统盘并运行setup.exe实现硬盘直装【教程】  飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】  蛙漫画网页版全站入口 蛙漫热门作品免费浏览  AO3最新镜像入口 Archive of Our Own官方平台访问  2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示  C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果  顺丰快件物流信息 官方网站查询入口  抓大鹅无需下载版 抓大鹅秒玩版入口  印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】  win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】  单射、满射与双射的关系 一文理清所有逻辑  免费抖音短视频入口_抖音网页版短视频免费通道  HTML空白字符处理机制:渲染、DOM与编码实践  中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】  b站怎么看视频的弹幕数量_b站弹幕数量查看方法  Steam官网入口直达 Steam注册及登录步骤  顺丰快递查单号物流信息 顺丰快递小程序查询入口  2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析  铃兰之剑为这和平的世界希里技能组及加点推荐  Composer的 "licenses" 命令如何帮助你遵守开源协议_检查项目依赖的许可证合规性  QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台  2026年CSGO开箱网站推荐 CSGO开箱平台精选  Node.js CSV 数据处理:基于字段空值条件过滤整条记录的策略  手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析  圆通快递查询实时追踪 圆通物流包裹状态快速查看  Go RPC HTTP服务正确实现与常见陷阱解析  深入理解J*aScript中的B样条曲线与节点向量生成  漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道  Go语言中JSON数据解码与字段访问指南  Lar*el的路由模型绑定怎么用_Lar*el Route Model Binding简化控制器逻辑  J*aScript教程:根据元素文本内容动态设置背景色 

搜索