信息发布→ 登录 注册 退出

如何为你的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等标签推送,都将触发自动发布流程,实现无缝版本同步。

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

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

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

  • 访问 https://www./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 文件:

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  # https  # auto  # Token  # ubuntu  # github  # json  # git  # js  # php  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!