Skip to main content

Développement d’une action CLI tierce

Découvrez comment développer une action pour configurer un environnement CLI sur les exécuteurs GitHub Actions.

Introduction

Vous pouvez écrire une action pour permettre aux utilisateurs d’accéder à vos serveurs via un environnement CLI configuré sur des exécuteurs GitHub Actions.

Votre action doit :

  • Permettre aux utilisateurs de spécifier facilement la version de l’interface CLI à installer
  • Prendre en charge plusieurs systèmes d’exploitation
  • S’exécuter de manière efficace pour réduire le temps d’exécution et les coûts associés
  • Fonctionner sur les exécuteurs auto-hébergés et hébergés dans GitHub
  • Tirer parti des outils de la communauté lorsque cela est possible

Cet article explique comment écrire une action qui récupère une version spécifique de votre interface CLI, l’installe, l’ajoute au chemin et (facultativement) la met en cache. Ce type d’action (une action qui configure un outil) est souvent nommé setup-$TOOL.

Prérequis

Vous devez savoir comment écrire une action personnalisée. Pour plus d’informations, consultez « À propos des actions personnalisées ». Pour obtenir un guide plus détaillé sur l’écriture des actions personnalisées, consultez « Creating a JavaScript action ».

Exemple

Le script suivant montre comment obtenir une version spécifiée par l’utilisateur comme entrée, télécharger et extraire la version spécifique de votre interface CLI, puis ajouter l’interface CLI au chemin.

GitHub fournit actions/toolkit, qui est un ensemble de packages qui vous aident à créer des actions. Cet exemple utilise les packages actions/core et 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

Pour utiliser ce script, remplacez getDownloadURL par une fonction qui télécharge votre interface CLI. Vous devez également créer un fichier de métadonnées d’action (action.yml) qui accepte une entrée version et qui exécute ce script. Pour plus d’informations sur la création d’une action, consultez « Creating a JavaScript action ».

Pour obtenir un exemple complet de configuration pour cette action, consultez example-setup-gh.

Pour aller plus loin

Ce modèle est utilisé dans plusieurs actions. Pour obtenir d’autres exemples, consultez :