跳至主要内容

开发第三方 CLI 操作

了解如何开发一个操作来在 GitHub Actions 运行器上设置 CLI。

简介

您可以编写一个操作,为用户提供一种通过 GitHub Actions 运行器上配置的 CLI 环境访问您的服务器的方式。

您的操作应该

  • 让用户能够轻松地指定要安装的 CLI 版本
  • 支持多种操作系统
  • 以高效的方式运行,以最大限度地减少运行时间和相关成本
  • 在 GitHub 托管和自托管运行器上运行
  • 尽可能利用社区工具

本文将演示如何编写一个操作,该操作检索特定版本的 CLI,安装它,将其添加到路径,并(可选)将其缓存。这种类型的操作(设置工具的操作)通常命名为 setup-$TOOL

先决条件

您应该了解如何编写自定义操作。有关更多信息,请参阅“关于自定义操作”。有关如何编写自定义操作的更详细指南,请参阅“创建 JavaScript 操作”。

示例

以下脚本演示了如何获取用户指定的版本作为输入,下载并解压缩特定版本的 CLI,然后将 CLI 添加到路径中。

GitHub 提供了 actions/toolkit,它是一组帮助您创建操作的软件包。此示例使用 actions/coreactions/tool-cache 软件包。

JavaScript
const core = require('@actions/core');
const tc = require('@actions/tool-cache');

async function setup() {
  // Get version of tool to be installed
  const version = core.getInput('version');

  // Download the specific version of the tool, e.g. as a tarball
  const pathToTarball = await tc.downloadTool(getDownloadURL());

  // Extract the tarball onto the runner
  const pathToCLI = await tc.extractTar(pathToTarball);

  // Expose the tool by adding it to the PATH
  core.addPath(pathToCLI)
}

module.exports = setup

要使用此脚本,请将 getDownloadURL 替换为下载 CLI 的函数。您还需要创建一个接受 version 输入并运行此脚本的操作元数据文件 (action.yml)。有关如何创建操作的完整详细信息,请参阅“创建 JavaScript 操作”。

进一步阅读

此模式在多个操作中使用。有关更多示例,请参阅