0Pricing
Git & GitHub Professional Workflow · 课时

自定义 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. GitHub Actions 简介
  2. 构建 CI/CD 工作流
  3. 自定义 Actions 与 Marketplace
  4. 操作中的机密与环境变量
← 返回 Git & GitHub Professional Workflow