简介
您可以编写一个操作,为用户提供一种通过 GitHub Actions 运行器上配置的 CLI 环境访问您的服务器的方式。
您的操作应该
- 让用户能够轻松地指定要安装的 CLI 版本
- 支持多种操作系统
- 以高效的方式运行,以最大限度地减少运行时间和相关成本
- 在 GitHub 托管和自托管运行器上运行
- 尽可能利用社区工具
本文将演示如何编写一个操作,该操作检索特定版本的 CLI,安装它,将其添加到路径,并(可选)将其缓存。这种类型的操作(设置工具的操作)通常命名为 setup-$TOOL
。
先决条件
您应该了解如何编写自定义操作。有关更多信息,请参阅“关于自定义操作”。有关如何编写自定义操作的更详细指南,请参阅“创建 JavaScript 操作”。
示例
以下脚本演示了如何获取用户指定的版本作为输入,下载并解压缩特定版本的 CLI,然后将 CLI 添加到路径中。
GitHub 提供了 actions/toolkit
,它是一组帮助您创建操作的软件包。此示例使用 actions/core
和 actions/tool-cache
软件包。
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
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 操作”。
进一步阅读
此模式在多个操作中使用。有关更多示例,请参阅