Gérer les actions et les workflows

Effectué

Vous allez découvrir ici les différents outils et stratégies disponibles pour vous dans GitHub Enterprise Cloud et GitHub Enterprise Server afin de partager des actions et workflows GitHub et de gérer leur utilisation au sein de votre entreprise.

Le contenu est structuré au niveau auquel les outils présentés sont disponibles : au niveau au niveau de l’entreprise ou au niveau de l’organisation.

Au niveau de l’entreprise

Configurer une stratégie d’utilisation de GitHub Actions

Les workflows GitHub Actions contiennent souvent des actions, qui sont des jeux de commandes autonomes à exécuter dans le workflow. Quand vous créez un workflow, vous pouvez créer vos propres actions à utiliser ou référencer des actions de la communauté publique disponibles à partir de GitHub Marketplace. C’est la raison pour laquelle il est essentiel de configurer une stratégie d’utilisation pour les workflows et les actions de votre entreprise afin d’empêcher les utilisateurs de recourir à des actions tierces malveillantes.

Plusieurs options sont disponibles dans Enterprise Cloud pour configurer une stratégie, ainsi que dans Enterprise Server si GitHub Connect est activé dans les paramètres de votre entreprise.

Pour configurer une stratégie d’utilisation de GitHub pour votre entreprise, accédez à votre compte d’entreprise, puis à Stratégies > Actions dans la barre latérale. Les options suivantes doivent apparaître.

Capture de l’écran Actions avec les options par défaut sélectionnées.

La liste déroulante intitulée Activer pour toutes les organisations vous permet de déterminer quelles organisations de votre entreprise peuvent utiliser GitHub Actions (toutes, certaines d’entre elles ou aucune), tandis que les trois options ci-dessous vous permettent de définir le niveau de restriction des GitHub Actions au sein de ces organisations.

Si vous souhaitez activer uniquement des actions spécifiques à utiliser au sein de votre entreprise, sélectionnez Autoriser l’entreprise, puis sélectionnez non entreprise, actions et flux de travail réutilisables, puis choisissez l’option correspondant à votre cas d’utilisation.

Capture de l’écran Actions avec l’option Autoriser certaines actions sélectionnée.

Synchroniser manuellement les actions publiques pour Enterprise Server

La plupart des actions officielles créées par GitHub sont regroupées automatiquement avec Enterprise Server et sont capturées à un moment donné à partir de la Place de marché GitHub. Elles incluent actions/checkout, actions/upload-artifact, actions/download-artifact, actions/labeler, et diverses actions actions/setup-, parmi d’autres. Pour obtenir toutes les actions officielles incluses avec votre instance d’entreprise, accédez à l’organisation des actions sur votre instance : https://HOSTNAME/actions.

Comme mentionné dans la section Configurer une stratégie d’utilisation de GitHub Actions, il est possible de configurer Enterprise Server pour qu’il accède automatiquement aux actions publiques disponibles dans GitHub Marketplace et de configurer une stratégie d’utilisation pour celles-ci. Toutefois, si vous souhaitez contrôler plus rigoureusement les actions publiques à mettre à disposition dans votre entreprise, vous pouvez télécharger et synchroniser manuellement les actions dans votre instance d’entreprise à l’aide de l’outil actions-sync.

Au niveau d’une organisation

Renseigner les normes d’entreprise

La création d’un flux de travail GitHub Actions implique souvent la création de plusieurs fichiers de plusieurs référentiels pour spécifier le flux de travail en lui-même. La création inclut également les actions, les conteneurs et/ou les exécuteurs à utiliser dans le flux de travail. En fonction du nombre d’utilisateurs dans votre instance Enterprise Cloud ou Enterprise Server, les choses peuvent se corser assez rapidement si vous n’avez pas de normes d’entreprise en place pour créer des workflows Actions GitHub.

Nous vous recommandons vivement de renseigner les éléments suivants dans un wiki GitHub ou sous forme de fichier Markdown dans un référentiel accessible à tous au sein d’une organisation :

  • Référentiels pour le stockage
  • Conventions d’affectation de noms de fichiers/dossiers
  • Emplacement des composants partagés
  • Plans de maintenance continue
  • Instructions de contribution

Créer des modèles de workflow

Les modèles de workflow sont un excellent moyen de s’assurer que l’automatisation est réutilisée et gérée dans votre entreprise. Dans Enterprise Cloud et Enterprise Server, les utilisateurs disposant d’un accès en écriture au référentiel .github d’une organisation peuvent créer des modèles de workflow qui pourront être utilisés par les membres de l’autre organisation avec le même accès en écriture. Les modèles de workflow peuvent ensuite être utilisés pour créer de nouveaux workflows dans les référentiels publics et privés de l’organisation.

La création d’un modèle de workflow s’effectue en deux étapes :

  1. Créez un fichier de workflow yml.

  2. Créez un fichier de métadonnées json qui décrit la façon dont le modèle doit être présenté aux utilisateurs lors de la création d’un flux de travail.

    Remarque

    Le fichier de métadonnées doit avoir le même nom que le fichier du workflow. Au lieu de l'extension .yml, il doit être ajouté à .properties.json. Par exemple, un fichier nommé octo-organization-ci.properties.json contient les métadonnées du fichier de workflow nommé octo-organization-ci.yml.

Les deux fichiers doivent être placés dans un référentiel .github public et dans un répertoire nommé workflow-templates. Vous devrez peut-être les créer s’ils n’existent pas déjà dans votre organisation.

Voici un exemple de fichier de workflow de base :

name: Octo Organization CI

on:
  push:
    branches: [ $default-branch ]
  pull_request:
    branches: [ $default-branch ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Run a one-line script
        run: echo Hello from Octo Organization

Notez que le fichier précédent utilise un espace réservé $default-branch. Lorsqu’un workflow est créé à l’aide de votre modèle, cet espace réservé est automatiquement remplacé par le nom de la branche par défaut du référentiel.

Voici le fichier de métadonnées que vous créez pour le fichier de flux de travail :

{
    "name": "Octo Organization Workflow",
    "description": "Octo Organization CI workflow template.",
    "iconName": "example-icon",
    "categories": [
        "Go"
    ],
    "filePatterns": [
        "package.json$",
        "^Dockerfile",
        ".*\\.md$"
    ]
}

Les fichiers de métadonnées utilisent les paramètres suivants :

Paramètre Description Obligatoire
name Nom du modèle de flux de travail affiché dans la liste des modèles disponibles. Oui
description Description du modèle de flux de travail affiché dans la liste des modèles disponibles. Oui
iconName Définit une icône pour l’entrée du workflow dans la liste de modèles. Doit être une icône SVG du même nom et doit être stockée dans le répertoire workflow-templates. Par exemple, un fichier SVG nommé example-icon.svg est référencé comme example-icon . Non
categories Définit la catégorie de langage du workflow. Quand un utilisateur consulte les modèles disponibles, les modèles qui correspondent au même langage sont plus visibles. Non
filePatterns Permet d’utiliser le modèle si le référentiel de l’utilisateur a un fichier dans son répertoire racine qui correspond à une expression régulière définie. Non

Une fois qu’un modèle de workflow est créé, les utilisateurs de votre organisation peuvent le trouver sous Actions > Nouveau workflow > Workflows créés par _your_organization_name.

Exemple de modèle de workflow.