Skip to main content

Desarrollar una acción del CLI de terceros

Aprende cómo desarrollar una acción para configurar un CLI en los ejecutores de GitHub Actions.

Introducción

Puedes escribir una acción para proporcionarles a los usuarios una forma de acceder a tus servidores a través de un ambiente configurado de CLI en los ejecutores de GitHub Actions.

Tu cuenta debería:

  • Facilitar que los usuarios especifiquen la versión del CLI a instalar
  • Ser compatible con sistemas operativos múltiples
  • Ejecutarse de forma eficiente para minimizar los costos de tiempo de ejecución y asociados
  • Funcionar a lo largo de los ejecutores auto-hospedados y hospedados en GitHub Enterprise Cloud
  • Apoyar las herramientas de la comunidad en medida de lo posible

Este artículo te demostrará cómo escribir una acción que recupere una versión específica de tu CLI, la instale, la agregue a la ruta y la guarde en caché (opcionalmente). Este tipo de acción (una acción que configura una herramienta) se llama a menudo setup-$TOOL.

Prerrequisitos

Deberás de entender cómo escribir una acción personalizada. Para obtener más información, consulta la sección "Acerca de las acciones personalizadas". Para consulta una guía más detallada sobre cómo escribir una acción personalizada, consulta la sección "Crear una acción de JavaScript".

Ejemplo

El siguiente script demuestra cómo puedes obtener una versión especificada por un usuario como entrada, descargar y extraer esta versión específica de tu CLI y luego agregar el CLI a la ruta.

GitHub proporciona el actions/toolkit, el cual es un conjunto de paquetes que te ayuda a crear acciones. Este ejemplo utiliza los paquetes actions/core y actions/tool-cache packages.

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

Para utilizar este script, reemplaza a getDownloadURL con una función que descargue tu CLI. También necesitarás crear un archivo de metadatos de acciones (action.yml) que acepte una entrada de version y que ejecute este script. Para encontrar todos los detalles sobre cómo crear una acción, consulta la sección "Crear una acción de JavaScript".

Para encontrar un ejemplo completo de cómo configurar esta acción, consulta example-setup-gh.

Leer más

Este patrón se emplea en varias acciones. Para ver más ejemplos, consulta: