0Pricing
DevOps Bootcamp · Leçon

Développement d’actions GitHub personnalisées

Apprenez à créer vos propres actions personnalisées réutilisables avec JavaScript ou Docker afin d’étendre les fonctionnalités de GitHub Actions.

Développement d’actions GitHub personnalisées est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.

Étendre GitHub Actions

Que faire si vous avez besoin, dans votre flux de travail, d'une tâche spécifique que GitHub Actions ne propose pas directement ? Ou si vous souhaitez réutiliser une logique complexe ?

Les actions personnalisées vous permettent de créer vos propres outils réutilisables pour les flux de travail. Elles ressemblent à de petits programmes qui exécutent une tâche précise, adaptée à vos besoins.

La puissance de la personnalisation

Les actions personnalisées offrent plusieurs avantages dans vos flux d'intégration et de livraison continues :

  • Réutilisabilité : Écrire une seule fois, puis utiliser dans de nombreux flux de travail et dépôts.
  • Standardisation : Garantir des processus cohérents dans toute votre organisation.
  • Encapsulation : Masquer une logique complexe derrière une interface simple.
  • Intégration : Interagir avec des outils ou des API internes spécifiques.

JavaScript ou Docker ?

GitHub Actions prend en charge deux principales façons de créer des actions personnalisées :

  • Actions JavaScript : Écrites en JavaScript ou en TypeScript, elles s'exécutent directement sur la machine d'exécution. Elles sont rapides et simples pour les tâches élémentaires.
  • Actions conteneurisées Docker : Encapsuler votre environnement et votre code dans une image Docker. Cette solution convient particulièrement aux actions qui nécessitent des dépendances ou des langages spécifiques.

Définir votre action

Chaque action personnalisée doit contenir un fichier action.yml dans son répertoire racine. Ce fichier YAML joue le rôle d'un manifeste et décrit votre action à GitHub Actions :

  • name et description : ce que fait votre action.
  • inputs : les données acceptées par votre action.
  • outputs : les données produites par votre action.
  • runs : la façon dont votre action s'exécute, par exemple avec un fichier JavaScript ou une image Docker.

Exemple d'action JS simple

Examinons une action JavaScript élémentaire. Vous aurez besoin d'un fichier action.yml et d'un fichier index.js. Le fichier action.yml définit les métadonnées et l'environnement d'exécution de l'action.

# action.yml
name: 'Hello World Action'
description: 'Greets a person using a custom message'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'World'
outputs:
  greeting-message:
    description: 'The greeting message generated'
runs:
  using: 'node16'
  main: 'index.js'

Écrire le code JavaScript

Le fichier index.js contient la logique réelle. Nous utilisons la boîte à outils @actions/core pour obtenir les valeurs d'entrée et définir les valeurs de sortie.

Essayez d'exécuter cet extrait JavaScript simple pour voir conceptuellement comment fonctionnent les entrées et les sorties, même en dehors d'un flux de travail complet :

// index.js (simplified for demonstration)
const core = require('@actions/core');

try {
  const name = core.getInput('who-to-greet');
  const message = `Hello, ${name}!`;
  console.log(message);
  core.setOutput('greeting-message', message);
} catch (error) {
  core.setFailed(error.message);
}

// A standalone runnable example to demonstrate core logic
function runSimpleGreeting(inputName) {
  const name = inputName || 'World';
  const message = `Hello from runnable JS, ${name}!`;
  return message;
}

console.log(runSimpleGreeting('CoddyKit'));
console.log(runSimpleGreeting());

Principes des actions Docker

Pour les environnements plus complexes, les actions conteneurisées Docker sont très puissantes. Elles incluent un fichier Dockerfile qui définit l'image du conteneur et regroupe toutes les dépendances nécessaires.

Votre fichier action.yml fera référence à cette image et indiquera à GitHub Actions de la construire et de l'exécuter.

# action.yml for Docker action
name: 'Docker Hello World'
description: 'Greets a name from within a Docker container'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'Docker'
outputs:
  greeting-message:
    description: 'The greeting message from Docker'
runs:
  using: 'docker'
  image: 'Dockerfile'

L'environnement de votre action

Le fichier Dockerfile indique l'image de base, installe les dépendances et définit le point d'entrée de votre action. Il garantit ainsi que votre action s'exécute dans un environnement cohérent et contrôlé.

# Dockerfile
FROM alpine:3.16

LABEL "com.github.actions.name"="Docker Hello World"
LABEL "com.github.actions.description"="Greets a name from within a Docker container"
LABEL "com.github.actions.icon"="globe"
LABEL "com.github.actions.color"="blue"

# Copy your script into the container
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

Écrire des scripts pour les actions Docker

Dans le conteneur Docker, votre script de point d'entrée (par exemple, entrypoint.sh) reçoit les entrées sous forme de variables d'environnement, précédées de INPUT_. Il définit les sorties en écrivant dans le fichier indiqué par la variable d'environnement $GITHUB_OUTPUT.

#!/bin/sh -l

# entrypoint.sh

echo "Hello from Docker, $INPUT_WHO_TO_GREET!"
GREETING="Hello from Docker, $INPUT_WHO_TO_GREET!"
echo "greeting-message=$GREETING" >> "$GITHUB_OUTPUT"

Bonnes pratiques pour les actions

Lors du développement d'actions personnalisées, tenez compte des conseils suivants pour créer des outils robustes et faciles à maintenir :

  • Gestion des versions : Utiliser la gestion sémantique des versions, par exemple v1 et v2, pour garantir la stabilité.
  • Tests : Tester rigoureusement votre action en local et dans des flux de travail.
  • Gestion des erreurs : Fournir des messages d'erreur clairs et gérer les échecs avec élégance.
  • Sécurité : Nettoyer les entrées et éviter d'exposer des données sensibles.
  • Documentation : Fournir des instructions d'utilisation claires dans votre README.

Vérification du type d'action

Vous devez créer une action GitHub personnalisée qui nécessite une bibliothèque Python spécifique, non préinstallée sur les exécuteurs GitHub Actions standards. Quel type d'action convient généralement le mieux à ce scénario ?

Résumé des actions personnalisées

Nous avons étudié comment étendre GitHub Actions en créant vos propres actions personnalisées. Vous avez découvert les deux principaux types — les actions JavaScript et les actions conteneurisées Docker — ainsi que le rôle essentiel du fichier action.yml. Nous avons également vu comment définir les entrées, les sorties et la logique principale de chaque type, ainsi que les bonnes pratiques de développement.

Les actions personnalisées sont très utiles pour favoriser la réutilisabilité et la standardisation dans vos flux d'intégration et de livraison continues !

Questions Fréquemment Posées

La leçon « Développement d’actions GitHub personnalisées » est-elle gratuite ?

Oui — le texte complet de « Développement d’actions GitHub personnalisées » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Développement d’actions GitHub personnalisées » ?

Apprenez à créer vos propres actions personnalisées réutilisables avec JavaScript ou Docker afin d’étendre les fonctionnalités de GitHub Actions. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?

Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Développement d’actions GitHub personnalisées » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?

Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Développement d’actions GitHub personnalisées
  2. Exécuteurs autohébergés sur site
  3. Intégration aux systèmes d’entreprise
  4. Actions composites et publication sur la Marketplace
← Retour à DevOps Bootcamp