自定义 Actions 与 Marketplace
探索 GitHub Actions Marketplace 中预构建的 Actions,并学习创建自己的自定义 Actions。
自定义 Actions 与 Marketplace 是 CoddyKit 上的免费 Git & GitHub Professional Workflow 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Git & GitHub Professional Workflow 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Git & GitHub Professional Workflow 课程共包含 4 节课。
探索 GitHub 操作市场
欢迎来到 GitHub 操作市场!这里是一个充满活力的平台,您可以找到由 GitHub、开源贡献者和商业合作伙伴创建的数千个预构建操作。
这些操作可以轻松集成到您的工作流中。通过重复使用现有的常见任务解决方案,它们能够为您节省时间和精力。
找到合适的操作
浏览市场非常简单。您可以通过关键词搜索操作,按类别筛选(例如“CI/CD”或“部署”),还可以按受欢迎程度排序。
- 优先选择星标评分高且维护活跃的操作。
- 查看操作文档,了解使用说明、输入和输出。
- 查看某个操作在公共代码仓库中的使用次数,以此获得社区认可的参考。
集成现成的操作
使用市场中的操作非常简单。在工作流 YAML 中使用 uses 关键字引用它,后面接上操作的所有者/仓库@版本。
一个常见示例是 actions/checkout,它会检出代码仓库中的代码,以便工作流访问这些代码。
name: Marketplace Demo
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Say hello
run: echo "Hello from workflow!"操作的输入和输出
许多操作接受用于自定义其行为的输入,这些输入使用 with 关键字指定。它们还可以产生其他工作流步骤能够使用的输出。
例如,actions/setup-node 操作可以接受一个 node-version 输入。
name: Node Setup Demo
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: '18.x'
- name: Install dependencies
run: npm install何时构建自己的操作
市场虽然提供了大量操作,但有时您需要特定功能。这时,自定义操作就能派上用场了!
您可以为以下用途构建自定义操作:
- 自动化公司内部工具。
- 与现有操作未涵盖的独特 API 集成。
- 执行专属于项目构建流程的高度专业化任务。
自定义操作类型
您可以创建两种主要类型的自定义操作:
- JavaScript 操作:直接在运行器机器上使用 Node.js 运行。它们通常开发速度更快,也更容易共享。
- Docker 容器操作:在 Docker 容器中运行。它们非常适合封装环境和依赖项,确保在不同运行器上保持一致的执行结果。
为简单起见,我们将重点介绍 JavaScript 操作。
`action.yml` 文件
每个自定义操作都需要一个 action.yml 文件。该文件定义操作的元数据,包括其名称、描述、接受的输入、产生的输出以及运行方式。
它就像操作的清单,告诉 GitHub 操作所有必要的信息。
name: 'My Custom Greeting Action'
description: 'Greets a person with a custom message.'
inputs:
who-to-greet:
description: 'Who to greet'
required: true
default: 'World'
outputs:
time:
description: 'The time we greeted you'
runs:
using: 'node16'
main: 'index.js'构建简单的 JavaScript 操作
让我们创建一个非常基本的 JavaScript 操作。您需要一个 index.js 文件(在 action.yml 中指定),通常还需要一个用于声明依赖项的 package.json。
@actions/core 软件包对于与工作流交互至关重要,例如获取输入和设置输出。
const core = require('@actions/core');
async function run() {
try {
const nameToGreet = core.getInput('who-to-greet');
console.log(`Hello ${nameToGreet}!`);
const time = (new Date()).toTimeString();
core.setOutput("time", time);
} catch (error) {
core.setFailed(error.message);
}
}
run();集成您的自定义操作
要使用自定义操作,请将其文件(action.yml、index.js 等)放在代码仓库的子目录中。然后,在工作流中使用 uses: ./path/to/your/action 形式的相对路径引用它。
这样,您就可以在可能将操作发布到市场之前,先在本地测试它。
name: Use Custom Action Demo
on: [push]
jobs:
greet:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run my custom action
uses: ./my-custom-action # Path to action directory
with:
who-to-greet: 'CoddyKit User'
- name: Get the output time
run: echo "The greeting time was ${{ steps.run-my-custom-action.outputs.time }}"自定义操作的组成部分
您已经了解了创建和使用自定义 GitHub 操作所涉及的关键元素。现在来测试一下您的理解吧!
市场与自定义操作回顾
做得很好!您已经探索了 GitHub 操作市场和自定义操作的强大功能。
- 市场提供了大量可以直接使用的操作,帮助简化工作流。
- 自定义操作让您能够扩展 GitHub 操作,以满足独特的项目或组织需求。
将两者结合起来,您就能构建功能强大且高度定制的自动化流水线!
常见问题解答
「自定义 Actions 与 Marketplace」课时是免费的吗?
是的 — 「自定义 Actions 与 Marketplace」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Git & GitHub Professional Workflow 课程的其余内容,请升级到 CoddyKit PRO。 Git & GitHub Professional Workflow 课程共包含 4 节课。
「自定义 Actions 与 Marketplace」这节课中我会学到什么?
探索 GitHub Actions Marketplace 中预构建的 Actions,并学习创建自己的自定义 Actions。 你通过在浏览器中直接运行的动手代码来练习 Git & GitHub Professional Workflow,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Git & GitHub Professional Workflow 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Git & GitHub Professional Workflow 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「自定义 Actions 与 Marketplace」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Git & GitHub Professional Workflow 课中编写并运行代码吗?
能。每节 Git & GitHub Professional Workflow 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- GitHub Actions 简介
- 构建 CI/CD 工作流
- 自定义 Actions 与 Marketplace
- 操作中的机密与环境变量