{"meta":{"title":"Criar uma ação da CLI de terceiros","intro":"Saiba como desenvolver uma ação para configurar uma CLI nos executores GitHub Actions.","product":"GitHub Actions","breadcrumbs":[{"href":"/pt/actions","title":"GitHub Actions"},{"href":"/pt/actions/how-tos","title":"Instruções"},{"href":"/pt/actions/how-tos/create-and-publish-actions","title":"Criar e publicar ações"},{"href":"/pt/actions/how-tos/create-and-publish-actions/create-a-cli-action","title":"Criar uma ação da CLI"}],"documentType":"article"},"body":"# Criar uma ação da CLI de terceiros\n\nSaiba como desenvolver uma ação para configurar uma CLI nos executores GitHub Actions.\n\n## Introdução\n\nVocê pode escrever uma ação para oferecer uma forma de os usuários acessarem seus servidores por meio de um ambiente de CLI já configurado em GitHub Actions runners.\n\nSua ação deve:\n\n* Ser simples para os usuários especificarem a versão da CLI a ser instalada\n* Ser compatível com vários sistemas operacionais\n* Executar de maneira eficiente para minimizar o tempo de execução e os custos associados\n* Trabalhar entre executores hospedados em GitHub e auto-hospedados\n* Alavancar ferramentas da comunidade quando possível\n\nEste artigo irá demonstrar como escrever uma ação que recupera uma versão específica da sua CLI, como instalá-la, adicioná-la ao caminho e (opcionalmente), armazená-la em cache. Em geral, esse tipo de ação (uma ação que configura uma ferramenta) é chamado `setup-$TOOL`.\n\n## Pré-requisitos\n\nVocê deve ter um entendimento de como escrever uma ação personalizada. Para saber mais, confira [Como gerenciar ações personalizadas](/pt/actions/how-tos/create-and-publish-actions/manage-custom-actions).\n\n## Exemplo\n\nO script a seguir demonstra como você pode obter uma versão especificada pelo usuário como entrada, fazer o download e extrair a versão específica da sua CLI e, em seguida, adicionar a CLI ao caminho.\n\nGitHub fornece [`actions/toolkit`](https://github.com/actions/toolkit), que é um conjunto de pacotes que ajuda você a criar ações. Este exemplo usa os pacotes [`actions/core`](https://github.com/actions/toolkit/tree/main/packages/core) e [`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\nPara usar esse script, substitua `getDownloadURL` por uma função que baixa a CLI. Você também precisará criar um arquivo de metadados de ações (`action.yml`) que aceite uma entrada `version` e que execute esse script. Para obter detalhes completos sobre como criar uma ação, confira [Criando uma ação de JavaScript](/pt/actions/tutorials/create-actions/create-a-javascript-action).\n\n## Leitura adicional\n\nEste padrão é usado em várias ações. Para mais exemplos, consulte:\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)"}