尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
完整指南:action-wordpress-plugin-deploy核心脚本deploy.sh深度解析——SVN检出、rsync同步与Tag提交
完整指南action-wordpress-plugin-deploy核心脚本deploy.sh深度解析——SVN检出、rsync同步与Tag提交【免费下载链接】action-wordpress-plugin-deployDeploy your plugin to the WordPress.org repository using GitHub Actions项目地址: https://gitcode.com/gh_mirrors/ac/action-wordpress-plugin-deployaction-wordpress-plugin-deploy是一个面向 WordPress 插件部署的 GitHub Actions 工具它能把你的 Git 标签内容自动提交到 WordPress.org 插件仓库。本文带你完整剖析它的核心脚本deploy.sh看懂 SVN 检出、rsync 同步与 Tag 提交三大关键环节让你像老手一样掌控整个自动发布流程。它到底解决什么问题WordPress.org 的插件仓库使用的是SVN而绝大多数插件开发都在Git里进行。两套版本管理系统如何衔接一直是 WordPress 插件开发者的痛点。这个项目用一段不到 240 行的 Bash 脚本 deploy.sh 把整件事自动化了环节工具作用拉取远程仓库SVN检出 WordPress.org 插件仓库同步文件rsync把插件文件干净地拷入trunk发布版本SVN复制trunk为tags/版本号并提交第 1 步环境准备与参数解析脚本开头deploy.sh#L7使用set -eo保证出错即停。随后它会检查并自动安装 SVNdeploy.sh#L15-L33校验SVN_USERNAME/SVN_PASSWORD两个密钥非 dry-run 模式下缺失则直接退出解析常用变量SLUG默认取仓库名deploy.sh#L65-L67VERSION默认从refs/tags/中提取并去掉v前缀deploy.sh#L71-L74BUILD_DIR指定构建产物目录deploy.sh#L82-L93 版本号直接来自 Git 标签名所以打 tag 就是发版——这是理解整个流程的钥匙。第 2 步SVN 检出 WordPress.org 仓库核心代码在 deploy.sh#L95-L104SVN_URLhttps://plugins.svn.wordpress.org/${SLUG}/ svn checkout --depth immediates $SVN_URL $SVN_DIR svn update --set-depth infinity assets svn update --set-depth infinity trunk svn update --set-depth immediates tags这里用了一个非常巧妙的分层检出策略assets和trunk完整下载infinity因为文件要同步进去tags只下载目录层级immediates只为检查某个版本是否已存在这样既省流量又保留完整判断能力。如果tags/$VERSION已存在脚本会提前退出deploy.sh#L121-L127避免重复发布——同一个版本号只会成功部署一次这是天然的幂等保护。第 3 步rsync 同步文件到 trunk这是脚本最精华的部分分三种情况情况一存在 .distignore 文件直接用 rsync 按排除规则同步deploy.sh#L131-L135rsync -rc --exclude-from$GITHUB_WORKSPACE/.distignore \ $GITHUB_WORKSPACE/ trunk/ --delete --delete-excluded情况二没有 .distignore走 Git 导出路线脚本会用git archive HEAD导出一份干净副本deploy.sh#L176再 rsync 到trunk。如果仓库连.gitattributes都没有还会自动写入一份默认配置把.github、.gitignore等文件排除在外deploy.sh#L161-L173。情况三设置了 BUILD_DIR直接同步构建产物目录忽略所有排除规则deploy.sh#L184-L187——适合有独立构建步骤的插件。关键参数--delete --delete-excluded它不仅复制新文件还会删除trunk中源目录已不存在的文件。这保证了 SVN 里的内容与你的标签内容完全一致而不会残留历史垃圾。第 4 步同步 assets 资源目录.wordpress-org目录可用ASSETS_DIR自定义会被同步到仓库顶层的assets目录deploy.sh#L190-L194。这正是 WordPress.org 要求的横幅、图标、截图的存放位置——与trunk平级。第 5 步Tag 提交——一次搞定版本发布准备提交前脚本做了几件关键的事添加新文件svn add . --force递归登记所有新增文件deploy.sh#L200删除失效文件通过svn status找出标记为!的删除项并执行svn rmdeploy.sh#L204复制标签svn cp trunk tags/$VERSION把本次发布固化为一个独立版本deploy.sh#L208修正图片 MIME 类型给assets里的 png/jpg/gif/svg 设置svn:mime-type防止截图在插件详情页点击时被迫下载deploy.sh#L212-L223提交svn commit -m Update to version $VERSION from GitHubdeploy.sh#L234⚠️ 注意 deploy.sh#L226 的svn update它在提交前再做一次更新专门规避 Directory out of date 这类冲突错误是很好的防御性编程习惯。两个实用开关generate-zip 与 dry-run这两个输入定义在 action.yml 中generate-zip: true部署完成后从trunk打包生成${SLUG}.zip并通过zip-path输出deploy.sh#L106-L118供后续步骤使用比如挂到 Release 里dry-run: true完整走一遍流程但跳过最终提交deploy.sh#L230-L235还能省略 SVN 密钥非常适合调试 官方提供的三个工作流示例都在 examples/ 目录下例如 examples/deploy-on-pushing-a-new-tag.yml 演示了推送 tag 即自动部署的典型用法。快速上手清单✅ 在仓库设置中配置SVN_USERNAME和SVN_PASSWORD两个密钥✅ 放入一个示例工作流到.github/workflows/目录✅ 准备.distignore或.gitattributes声明需要排除的文件✅ 先开dry-run: true跑一遍确认文件清单无误✅ 打一个 tag如v1.2.0观察自动部署完成 总结deploy.sh之所以值得学习在于它用极简的代码展示了成熟的自动化思维幂等检查版本已存在即退出、分层检出按深度控制 SVN 流量、镜像同步rsync--delete、防御性提交先 update 再 commit。读懂这一个脚本你就能把它改造成适合自己团队发布的 WordPress 插件部署流水线。【免费下载链接】action-wordpress-plugin-deployDeploy your plugin to the WordPress.org repository using GitHub Actions项目地址: https://gitcode.com/gh_mirrors/ac/action-wordpress-plugin-deploy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

2025!投70份简历面3家 VS 5个岗位抢2人!后端已卷死,速上AI算法末班车!

2025!投70份简历面3家 VS 5个岗位抢2人!后端已卷死,速上AI算法末班车!

凌晨两点,资深Java工程师李明(化名)刷新了求职后台,屏幕上依然是那几行冰冷的数字:已投递70份简历,面试邀请3个。同一时间,刚入职某大厂AI Lab半年的前同事,朋友圈晒出了一张深夜会议…

📅 2026/9/17 16:08:53
WinDiskWriter:macOS上3步做出Windows启动盘

WinDiskWriter:macOS上3步做出Windows启动盘

WinDiskWriter:macOS上3步做出Windows启动盘 【免费下载链接】WinDiskWriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Legacy Support …

📅 2026/11/12 20:28:15
一文读懂大模型应用:RAG与Agent技术详解(建议收藏)

一文读懂大模型应用:RAG与Agent技术详解(建议收藏)

简介 文章介绍了大模型应用领域的两大主流技术:RAG与Agent。重点解释了Agent的概念,即基于大模型的自主型人工智能实体,它不仅能够理解问题,还能主动规划和执行复杂任务。文章详细阐述了Agent的必要性、应用场景、工作原理、系统组…

📅 2026/11/13 7:57:05
MORE NEWS

更多资讯

📰

低压电工证哪个管用内部消息实操考试心里没底怕挂科

低压电工证哪个管用内部消息实操考试心里没底怕挂科 你是不是也和我一样,第一次接触低压电工证报考,脑子里全是问号?实操考试心里没底怕挂科,生怕一不小心就被淘汰。别慌,我来给你点 内部消息 ,带你一步步搞懂低压电工证到底 哪个管用…

📰

四级初级电工证郑州报考避坑指南:工地太忙根本没时间复习考试怎么办?

四级初级电工证郑州报考避坑指南:工地太忙根本没时间复习考试怎么办? 工地太忙根本没时间复习考试,这不是你一个人的烦恼,更是很多电工兄弟的日常。尤其是新乡市的市政公用工程从业者,天天在工地上忙得脚不沾地,但手里那本四级初级电工证,却成了你能不…

📰

星海街电工证网上查询换证流程:找工作必备,别等证过期才慌

星海街电工证网上查询换证流程:找工作必备,别等证过期才慌 你是不是正为 星海街电工证 到期换证发愁?别急,今天就带你搞清楚整个流程,还能 网上查询 你的证件状态,省时又省心。特别是那些准备上岗找工作的人,证件没在手,机会就等于零。…

📰

电工证年审需要的资料及郑州报考避坑指南:信阳浉河区水利工程从业者必看

电工证年审需要的资料及郑州报考避坑指南:信阳浉河区水利工程从业者必看 你是不是也遇到过这种情况?想考电工证,但不知道该去哪报名,担心被中介骗钱、资料不全、流程不清,结果一拖再拖?这正是很多像你一样的水利工程从业者在报考电工证时面临的…

📰

考电工证的全部费用及电子证书办理全解析

考电工证的全部费用及电子证书办理全解析 之前考的证在外省能不能转过来?这是很多在外地打拼的朋友最关心的问题,尤其是像我这样在周口从事公路工程的从业者,常年奔波在项目之间,证书转接、电子证书查询、费用明细这些事,直接影响到能否顺利上岗、参与项…

📰

在家考低压电工证攻略与郑州报考避坑指南

在家考低压电工证攻略与郑州报考避坑指南 你是不是也担心自己学历不高,考低压电工证根本报不上名?别急,我来给你讲讲真实情况,还带郑州本地人避坑的干货,看完你就知道怎么操作了。…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬