{"meta":{"title":"Создание стороннего действия CLI","intro":"Узнайте, как разработать действие для настройки интерфейса командной строки на GitHub Actions бегунах.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/actions","title":"GitHub Actions"},{"href":"/ru/actions/how-tos","title":"Инструкции"},{"href":"/ru/actions/how-tos/create-and-publish-actions","title":"Создание и публикация действий"},{"href":"/ru/actions/how-tos/create-and-publish-actions/create-a-cli-action","title":"Создание действия CLI"}],"documentType":"article"},"body":"# Создание стороннего действия CLI\n\nУзнайте, как разработать действие для настройки интерфейса командной строки на GitHub Actions бегунах.\n\n## Введение\n\nВы можете написать действие, чтобы предоставить пользователям возможность доступа к серверам с помощью настроенной среды ИНТЕРФЕЙСА командной строки в GitHub Actions запусках.\n\nДействие должно отвечать следующим требованиям:\n\n* позволять пользователям легко указывать версию интерфейса CLI для установки;\n* поддерживать несколько операционных систем;\n* эффективно выполняться для сведения к минимуму затрат времени и ресурсов;\n* Работа между GitHubразмещенными и локальными запусками\n* по возможности использовать инструменты сообщества.\n\nВ этой статье показано, как написать действие, которое получает определенную версию интерфейса CLI, устанавливает ее, добавляет ее по определенному пути и (необязательно) кэширует ее. Действия такого типа (которые устанавливают средство) часто называются `setup-$TOOL`.\n\n## Необходимые компоненты\n\nУ вас должно быть представление о написании пользовательских действий. Дополнительные сведения см. в разделе [Управление пользовательскими действиями](/ru/actions/how-tos/create-and-publish-actions/manage-custom-actions).\n\n## Пример\n\nВ приведенном ниже скрипте показано, как получить указанную пользователем версию в качестве входных данных, скачать и извлечь эту версию интерфейса CLI, а затем добавить ее по пути.\n\nGitHub предоставляет [`actions/toolkit`](https://github.com/actions/toolkit)набор пакетов, которые помогают создавать действия. В этом примере используются пакеты [`actions/core`](https://github.com/actions/toolkit/tree/main/packages/core) и [`actions/tool-cache`](https://github.com/actions/toolkit/tree/main/packages/tool-cache).\n\n```javascript copy\nconst core = require('@actions/core');\nconst tc = require('@actions/tool-cache');\n\nasync function setup() {\n  // Get version of tool to be installed\n  const version = core.getInput('version');\n\n  // Download the specific version of the tool, e.g. as a tarball\n  const pathToTarball = await tc.downloadTool(getDownloadURL());\n\n  // Extract the tarball onto the runner\n  const pathToCLI = await tc.extractTar(pathToTarball);\n\n  // Expose the tool by adding it to the PATH\n  core.addPath(pathToCLI)\n}\n\nmodule.exports = setup\n```\n\nЧтобы использовать этот скрипт, замените `getDownloadURL` на функцию, которая скачивает интерфейс CLI. Вам также потребуется создать файл метаданных действия (`action.yml`), который принимает входной аргумент `version` и запускает скрипт. Полные сведения о создании действия см. в разделе [Создание действия JavaScript](/ru/actions/tutorials/create-actions/create-a-javascript-action).\n\n## Дополнительные материалы\n\nЭтот шаблон применяется в нескольких действиях. Дополнительные примеры:\n\n* [`ruby/setup-ruby`](https://github.com/ruby/setup-ruby)\n* [`google-github-actions/setup-gcloud`](https://github.com/google-github-actions/setup-gcloud)\n* [`hashicorp/setup-terraform`](https://github.com/hashicorp/setup-terraform)"}