资讯详情

p5.js 维护者如何通过 npm version 与 GitHub Actions 发布新版本?

📅 2026/9/13 18:32:08 | 华诺云谱 👁 阅读
p5.js 维护者如何通过 npm version 与 GitHub Actions 发布新版本?
p5.js 维护者如何通过 npm version 与 GitHub Actions 发布新版本【免费下载链接】p5.jsp5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. Looking for p5.js 2.0? http://beta.p5js.org项目地址: https://gitcode.com/GitHub_Trending/p5/p5.jsp5.js 维护者发布新版本时本地只需要完成四步切回 main 分支、用npm version提升版本号、推送 main 分支、推送版本标签。之后测试、构建、发布到 NPM、创建 GitHub release、同步 p5.js-website 与 Bower 仓库等工作全部由 GitHub Actions 在 CI 中执行。这篇文章基于 contributor_docs/release_process.md 与仓库中.github/workflows/下的两个发布工作流把这条发布路径完整走一遍。发布前的准备条件release_process.md 的 Requirements 一节列出了执行发布的四项前提系统上已安装 Git、node.js 和 NPM你能构建这个库并且对远程仓库有 push 权限远程仓库上已设置 SecretNPM_TOKEN远程仓库上已设置 SecretACCESS_TOKEN。两个 Secret 的创建要求对应文档的 Security tokens 一节NPM_TOKEN按 npm 官方文档创建一个 read publish 类型的 access tokentoken 所属用户必须对 NPM 上的 p5 项目有 publish 权限。ACCESS_TOKEN一个 GitHub 个人访问令牌PAT所属用户需能访问p5.js、p5.js-website、p5.js-release三个仓库scope 只勾选repo和workflow。文档建议改用组织专用账号并把写权限限制在所需仓库范围内。版本号遵循 semver 的MAJOR:MINOR:PATCH模式本地命令中的major|minor|patch参数就按变更级别三选一。本地执行的四个命令文档给出的 Usage 步骤如下$ git checkout main $ npm version [major|minor|patch] # Choose the appropriate version tag $ git push origin main $ git push origin v1.4.2 # Replace the version number with the one just created above逐条说明git checkout main回到主分支再发版。npm version [major|minor|patch]把[major|minor|patch]替换为本次实际要提升的级别例如 patch 版该命令会更新package.json中的version并生成对应的版本标签。git push origin main推送包含新版本号的提交。git push origin v1.4.2推送第 2 步刚创建的标签命令中的v1.4.2只是文档示例需替换为npm version实际生成的版本号。标签一旦推上去CI 就会被触发本地没有其他发布动作。标签如何触发对应的工作流release_process.md 的 “Whats actually happening” 一节描述为匹配v*.*.*模式的标签由npm version创建触发名为 New p5.js release 的 GitHub Action。当前仓库中这条流程拆成了两个工作流触发模式写得更具体release-workflow-v1.yml工作流名 New p5.js v1 release在推送v1.*.*或v1.*.*-*标签时触发release-workflow-v2.yml工作流名 New p5.js 2.x release在推送v2.*.*或v2.*.*-*标签时触发。两个文件开头都注明Requires secrets NPM_TOKEN and ACCESS_TOKEN to be set并声明permissions: contents: write。触发后工作流会先检查标签是否包含-rc来判断是否为预发布prerelease版本这个判断会影响后面 NPM 发布和网站更新的分支行为。工作流中实际运行的步骤按两个工作流的实际定义CI 依次做以下事情安装依赖并跑质量门禁checkout、setup-nodenode-version 均为 22v1 工作流注释说明是有意固定在 22、npm ci、npm test、npm run build。v2 工作流的门禁更完整测试命令为npm test -- --projectunit-tests并额外执行npm run generate-types和npm run test:types验证 TypeScript 类型。准备发布文件mkdir release mkdir p5 cp -r ./lib/* p5/后打成release/p5.zip随后把发布产物拷入release/目录——v1 工作流拷贝lib/p5.js、lib/p5.min.js、lib/addons/p5.sound.js、lib/addons/p5.sound.min.jsv2 工作流拷贝lib/p5.js、lib/p5.min.js、lib/p5.esm.js。创建 GitHub release 并发布到 NPMrelease 以draft: true创建开启generate_release_notes: truechangelog 按 .github/release.yml 的规则生成排除 dependabot 及Dependencies标签的条目分为 Whats Changed 与 New Contributors 两类。NPM 发布使用secrets.NPM_TOKENv1 工作流仅在非预发布时执行v2 工作流对稳定版用latesttag 发布对预发布版本用betatag 发布。更新 p5.js-website预发布标签跳过整段克隆processing/p5.js-websitev1 工作流推送到v1分支v2 工作流克隆并推送main分支在其中执行npm install和build:p5-version、build:contributor-docs、build:contributors、build:reference、build:search五个构建脚本再以Update p5.js to 标签名为提交信息提交并推送回网站仓库。release_process.md 对该步的概括是“把data.json、p5.min.js等文件复制到网站仓库并更新data.yml、en.json”与当前工作流中的构建脚本流程对应同一目标但当前以工作流文件为准。更新 Bower 仓库仅 v1 工作流预发布跳过克隆processing/p5.js-release把lib/*.js和lib/addons/*拷入bower/lib/对应位置提交后推送到master分支。文档在结尾给了维护原则尽量让发布时独有的步骤集中定义在 CI workflow 里而不是塞进 build 配置。需要新增发布步骤时照此办理。结果验证命令执行后到 p5.js 仓库的 Actions 页面找对应任务。文档说找名为 New p5.js release 的 job按当前两个工作流的命名实际显示为 New p5.js v1 release 或 New p5.js 2.x release点进 job 可看详细日志。job 完成后库会同时发布到 GitHub 和 NPM检查 GitHub releases 与 NPM 上 p5 包的最新版本是否为刚发布的版本。GitHub 上的 release 是 draft 状态文档要求维护者查看该草稿、按需修改 changelog然后再正式发布publish这个 release。网站要等 p5.js-website 自己的构建和部署 job 完成后才更新可在其 Actions 页面监控之后在网站的 Downloads 页面核对最新版本号。CDN 更新需要再等一两天它们会自动从 NPM 拉取无需额外操作。可选用 act 在本地调试发布工作流release_process.md 的 Testing 一节说明发布步骤跑在 CI 里、本地测试较难开发时曾用 actnektos/act 项目在本地运行这些步骤但需要注意三点需要对 workflow 定义做一些临时修改文档明确说具体步骤会随时间变化只做概略记录测试步骤可能跑不起来因为 mocha Chrome 测试缺系统依赖很可能要先用apt安装一些系统包这属于修改本地环境的操作届时看错误信息判断缺哪些包所有向远程仓库推送变更的步骤应当先注释掉避免意外推送。限制与边界整套流程依赖NPM_TOKEN和ACCESS_TOKEN两个 repository secrets 都已配置缺任一项发布步骤无法完整运行。预发布标签包含-rc的行为在两条工作流中不同v1 工作流会完全跳过 NPM 发布、网站更新和 Bower 更新v2 工作流仍会发 NPM但走betatag同样跳过网站更新。v1 工作流固定使用 node 22注释标注 “Keep at 22 purposefully for v1”调整时不能随意升级。【免费下载链接】p5.jsp5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on the core principles of Processing. Looking for p5.js 2.0? http://beta.p5js.org项目地址: https://gitcode.com/GitHub_Trending/p5/p5.js创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。