复合操作与发布到 Marketplace
构建包含多个步骤的复合操作,正确管理版本,并将自定义操作发布到 GitHub Marketplace 以便复用
复合操作与发布到 Marketplace 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
三种自定义 action
GitHub 支持三种编写自定义 action 的方式:
- JavaScript action — 运行 Node 代码
- Docker action — 在容器中运行
- 组合式 action — 将多个工作流步骤打包在一起
本课程重点介绍组合式 action及其发布。
什么是组合式 action
组合式 action会将多个 run 步骤和其他 action 调用打包成一个可复用单元,无需编写 JavaScript 或构建 Docker 镜像。
它非常适合封装重复执行的 Shell 命令序列。
action.yml 文件
每个 action 都由其根目录中的 action.yml 定义。对于组合式 action,请将 runs.using 设置为 composite。
name: Setup Project
description: Install deps and build
runs:
using: composite
steps:
- run: npm ci
shell: bash
- run: npm run build
shell: bash必须指定 Shell
有一条容易忽略的规则:在组合式 action 中,每个 run 步骤都必须声明 shell。忘记声明它,是编写组合式 action 时最常见的错误。
- run: echo 'hello'
shell: bash定义输入
使用 inputs 让 action 可配置。调用方通过 with 传入值,您可以使用 inputs.<name> 引用这些值。
inputs:
node-version:
description: Node version
required: false
default: '20'
runs:
using: composite
steps:
- run: echo Using ${{ inputs.node-version }}
shell: bash定义输出
复合操作可以返回输出。某个步骤会写入 GITHUB_OUTPUT,操作再将其映射为一个命名输出。
outputs:
build-id:
value: ${{ steps.gen.outputs.id }}
runs:
using: composite
steps:
- id: gen
run: echo "id=$(date +%s)" >> $GITHUB_OUTPUT
shell: bash使用本地操作
您可以通过路径引用存储在同一仓库中的操作,这在发布前开发时非常方便。
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-project
with:
node-version: '20'使用标签进行版本管理
已发布的操作通过 Git 引用进行引用。最佳实践是:将发布版本标记为 v1.0.0,同时维护一个会随更新移动的 v1 标签。
使用 @v1 的调用方会自动获得不破坏兼容性的更新。
git tag -a v1.0.0 -m 'release'
git tag -f v1
git push --tags --force为市场发布做准备
要发布到 GitHub 市场,操作必须存放在公开仓库中,并且包含一个 action.yml,其中应包含 name、description,最好还包含 branding(图标和颜色)。
branding:
icon: package
color: blue发布版本
在仓库的“版本发布”页面中,为您的标签创建一个版本草稿。GitHub 会显示一个将此操作发布到市场的复选框。
接受协议,选择类别,然后发布。之后所有人都可以搜索到该操作。
记录使用方法
一个优秀的操作应随附清晰的 README,其中展示使用示例、输入和输出。
评估您操作的企业会高度依赖这些文档,因此请确保内容准确且完整。
快速检查
测试您对复合操作的理解。
回顾
您已经学会构建和发布复合操作。
- 复合操作通过
runs.using: composite将多个步骤打包在一起 - 每个运行步骤都必须明确指定
shell - 公开输入和输出,以便重复使用
- 使用语义化版本和会随更新移动的主版本标签进行标记,然后发布到市场
可复用操作帮助团队扩展共享的 CI/CD 逻辑。
常见问题解答
「复合操作与发布到 Marketplace」课时是免费的吗?
是的 — 「复合操作与发布到 Marketplace」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「复合操作与发布到 Marketplace」这节课中我会学到什么?
构建包含多个步骤的复合操作,正确管理版本,并将自定义操作发布到 GitHub Marketplace 以便复用 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「复合操作与发布到 Marketplace」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 开发自定义 GitHub Actions
- 用于本地部署的自托管运行器
- 与企业系统集成
- 复合操作与发布到 Marketplace