Skip to main content

Разработка стороннего действия CLI

Узнайте, как разработать действие для настройки интерфейса командной строки в средствах выполнения тестов GitHub Actions.

Введение

Вы можете написать действие, чтобы предоставить пользователям возможность доступа к вашим серверам через настроенную среду CLI в средствах выполнения GitHub Actions.

Действие должно отвечать следующим требованиям:

  • позволять пользователям легко указывать версию интерфейса CLI для установки;
  • поддерживать несколько операционных систем;
  • эффективно выполняться для сведения к минимуму затрат времени и ресурсов;
  • работать в размещенных в GitHub Enterprise Cloud и локальных средствах выполнения;
  • по возможности использовать инструменты сообщества.

В этой статье показано, как написать действие, которое получает определенную версию интерфейса CLI, устанавливает ее, добавляет ее по определенному пути и (необязательно) кэширует ее. Действия такого типа (которые устанавливают средство) часто называются setup-$TOOL.

Необходимые компоненты

У вас должно быть представление о написании пользовательских действий. Дополнительные сведения см. в разделе Сведения о настраиваемых действиях. Более подробное руководство по написанию пользовательского действия см. в разделе Создание действия JavaScript.

Пример

В приведенном ниже скрипте показано, как получить указанную пользователем версию в качестве входных данных, скачать и извлечь эту версию интерфейса CLI, а затем добавить ее по пути.

GitHub предоставляет actions/toolkit, набор пакетов, помогающих создавать действия. В этом примере используются пакеты actions/core и actions/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. Вам также потребуется создать файл метаданных действия (action.yml), который принимает входной аргумент version и запускает скрипт. Полные сведения о создании действия см. в разделе Создание действия JavaScript.

Дополнительные материалы

Этот шаблон применяется в нескольких действиях. Дополнительные примеры: