À propos des environnements
Les environnements sont utilisés pour décrire une cible de déploiement général comme production
, staging
ou development
. Quand un workflow GitHub Actions est déployé dans un environnement, l’environnement s’affiche dans la page principale du dépôt. Pour plus d’informations sur l’affichage des déploiements dans les environnements, consultez « Consultation de l’historique de déploiement ».
Vous pouvez configurer les environnements avec des règles de protection et des secrets. Lorsqu’un travail de workflow référence un environnement, le travail démarre seulement après que toutes les règles de protection de l’environnement sont validées. Un projet ne peut pas non plus accéder à des secrets définis dans un environnement tant que toutes les règles de protection du déploiement n’ont pas été validées.
Règles de protection du déploiement
Les règles de protection du déploiement nécessitent la validation de conditions spécifiques pour qu’un travail référençant l’environnement puisse continuer. Vous pouvez utiliser des règles de protection de déploiement pour exiger une approbation manuelle, retarder un travail ou restreindre l’environnement à certaines branches.
Réviseurs requis
Utilisez des réviseurs requis pour exiger qu’une personne ou équipe spécifique soit chargée d’approuver les travaux de workflow qui référencent l’environnement. Vous pouvez lister jusqu’à six utilisateurs ou équipes comme réviseurs. Les réviseurs doivent avoir au moins un accès en lecture au dépôt. Seul l’un des réviseurs requis doit approuver le travail pour qu’il continue.
Pour plus d’informations sur les travaux de révision qui référencent un environnement avec des réviseurs requis, consultez « Révision des déploiements ».
Minuteur d’attente
Utilisez un minuteur d’attente pour retarder d’un certain temps un travail après son déclenchement. Le temps (en minutes) doit être un entier compris entre 0 et 43 200 (30 jours).
Branches de déploiement
Utilisez des branches de déploiement pour restreindre les branches qui peuvent être déployées dans l’environnement. Voici les options des branches de déploiement pour un environnement :
-
Toutes les branches : toutes les branches du dépôt peuvent être déployées dans l’environnement.
-
Branches protégées : seules les branches avec des règles de protection de branche activées peuvent être déployées dans l’environnement. Si aucune règle de protection de branche n’est définie pour une branche dans le dépôt, toutes les branches peuvent être déployées. Pour plus d’informations sur les règles de protection des branches, consultez « À propos des branches protégées ».
-
Branches sélectionnées: seules les branches qui correspondent à vos modèles de nom spécifiés peuvent être déployées dans l’environnement.
Par exemple, si vous spécifiez
releases/*
comme règle de branche de déploiement, seules les branches dont le nom commence parreleases/
peuvent être déployées dans l’environnement. (Les caractères génériques ne correspondent pas à/
. Pour faire correspondre les branches qui commencent parrelease/
et qui contiennent une barre oblique unique supplémentaire, utilisezrelease/*/*
.) Si vous ajoutezmain
en tant que règle de branche de déploiement, une branche nomméemain
peut également être déployée dans l’environnement. Pour plus d’informations sur les options de syntaxe des branches de déploiement, consultez la documentation Ruby sur File.fnmatch.
Secrets d’environnement
Les secrets stockés dans un environnement sont disponibles uniquement pour les travaux de workflow qui référencent l’environnement. Si l’environnement nécessite une approbation, un travail ne peut pas accéder aux secrets d’environnement tant que l’un des réviseurs requis ne l’approuve pas. Pour plus d’informations sur les secrets, consultez « Utilisation de secrets dans GitHub Actions ».
Remarque : Les workflows qui s’exécutent sur des exécuteurs auto-hébergés ne sont pas exécutés dans un conteneur isolé, même s’ils utilisent des environnements. Les secrets d’environnement doivent être traités avec le même niveau de sécurité que les secrets de dépôt et d’organisation. Pour plus d’informations, consultez « Durcissement de la sécurité pour GitHub Actions ».
Création d’un environnement
Pour configurer un environnement dans un référentiel de comptes personnels, vous devez être le propriétaire du référentiel. Pour configurer un environnement dans un référentiel d’organisation, vous devez disposer d’un accès admin
.
- Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.
- Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.
- Dans la barre latérale gauche, cliquez sur Environnements.
- Cliquez sur Nouvel environnement.
- Entrez un nom pour l’environnement, puis cliquez sur Configurer l’environnement. Les noms d’environnements ne respectent pas la casse. Un nom d’environnement ne peut pas dépasser 255 caractères et doit être unique dans le dépôt.
- Si vous le souhaitez, spécifiez des personnes ou des équipes qui doivent approuver les travaux de workflow qui utilisent cet environnement. Pour plus d’informations, consultez « Réviseurs requis ».
- Sélectionnez Required reviewers.
- Entrez jusqu’à 6 personnes ou équipes. Seul l’un des réviseurs requis doit approuver le travail pour qu’il continue.
- Cliquez sur Enregistrer les règles de protection.
- Si vous le souhaitez, spécifiez le temps d’attente avant d’autoriser les travaux de workflow qui utilisent cet environnement à poursuivre. Pour plus d’informations, consultez « Retardateur d’attente ».
- Sélectionnez Minuteur d’attente.
- Entrez le nombre de minutes à attendre.
- Cliquez sur Enregistrer les règles de protection.
- Si vous le souhaitez, spécifiez les branches qui peuvent être déployées dans cet environnement. Pour plus d’informations, voir « Branches de déploiement ».
- Sélectionnez l’option souhaitée dans la liste déroulante Branches de déploiement.
- Si vous avez choisi Branches sélectionnées, entrez les modèles de nom de branche que vous souhaitez autoriser.
- Si vous le souhaitez, ajoutez des secrets d’environnement. Ces secrets sont disponibles uniquement pour les travaux de workflow qui utilisent l’environnement. En outre, les travaux de workflow qui utilisent cet environnement peuvent uniquement accéder à ces secrets après la validation des règles éventuellement configurées (par exemple, les réviseurs requis). Pour plus d’informations, consultez « Secrets d’environnement ».
- Sous Secrets d’environnement, cliquez sur Ajouter un secret.
- Entrez le nom du secret.
- Entrez la valeur du secret.
- Cliquez sur Ajouter un secret.
Vous pouvez également créer et configurer des environnements via l’API REST. Pour plus d’informations, consultez « Environnements de déploiement », « Secrets GitHub Actions », et « Stratégies de branche de déploiement ».
L’exécution d’un workflow qui référence un environnement qui n’existe pas crée un environnement avec le nom référencé. L’environnement nouvellement créé n’aura pas de règles de protection ni de secrets configurés. Toute personne qui peut modifier des workflows dans le dépôt peut créer des environnements via un fichier de workflow, mais seuls les administrateurs de dépôt peuvent configurer l’environnement.
Utilisation d’un environnement
Chaque travail d’un workflow peut référencer un seul environnement. Toutes les règles de protection configurées pour l’environnement doivent être validées pour qu’un travail référençant l’environnement soit envoyé à un exécuteur. Le travail peut accéder aux secrets de l’environnement après seulement que le travail a été envoyé à un exécuteur.
Quand un workflow référence un environnement, l’environnement apparaît dans les déploiements du dépôt. Pour plus d’informations sur l’affichage des déploiements actuels et précédents, consultez « Consultation de l’historique de déploiement ».
Vous pouvez spécifier un environnement pour chacun des travaux de votre workflow. Pour ce faire, ajoutez une clé jobs.<job_id>.environment
suivie du nom de l’environnement.
Par exemple, ce workflow utilise un environnement appelé production
.
name: Deployment
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
steps:
- name: deploy
# ...deployment-specific steps
Lorsque le workflow ci-dessus s’exécute, le travail deployment
est soumis à toutes les règles configurées pour l’environnement production
. Par exemple, si l’environnement nécessite des réviseurs, le travail s’interrompt jusqu’à ce que l’un des réviseurs approuve le travail.
Vous pouvez également spécifier une URL pour l’environnement. L’URL spécifiée apparaît sur la page des déploiements du référentiel (accessible en cliquant sur Environnements sur la page d’accueil de votre référentiel) et dans le graphique de visualisation de l’exécution du workflow. Si une demande de tirage (pull request) a déclenché le workflow, l’URL apparaît également sous forme de bouton Afficher le déploiement dans la chronologie de la demande de tirage.
name: Deployment
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment:
name: production
url: https://github.com
steps:
- name: deploy
# ...deployment-specific steps
Suppression d’un environnement
Pour configurer un environnement dans un référentiel de comptes personnels, vous devez être le propriétaire du référentiel. Pour configurer un environnement dans un référentiel d’organisation, vous devez disposer d’un accès admin
.
La suppression d’un environnement supprime toutes les règles de protection et tous les secrets associés à l’environnement. Tous les travaux actuellement en attente en raison de règles de protection de l’environnement supprimé échouent automatiquement.
- Dans votre instance GitHub Enterprise Server, accédez à la page principale du dépôt.
- Sous le nom de votre dépôt, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.
- Dans la barre latérale gauche, cliquez sur Environnements.
- À côté de l’environnement que vous souhaitez supprimer, cliquez sur .
- Cliquez sur Je comprends, supprimez cet environnement.
Vous pouvez également supprimer des environnements via l’API REST. Pour plus d’informations, consultez « Référentiels ».
Relation entre les environnements et les déploiements
Quand un travail de workflow qui référence un environnement s’exécute, il crée un objet de déploiement avec la propriété environment
définie sur le nom de votre environnement. Au fur et à mesure que le workflow progresse, il crée aussi des objets d’état de déploiement avec la propriété environment
définie sur le nom de votre environnement, la propriété environment_url
définie sur l’URL de l’environnement (si elle est spécifiée dans le workflow) et la propriété state
définie sur l’état du travail.
Vous pouvez accéder à ces objets via l’API REST ou l’API GraphQL. Vous pouvez également vous abonner à ces événements webhook. Pour plus d’informations, consultez « Référentiels » (API REST), « Objets » (API GraphQL) ou « Événements et charges utiles du webhook ».
Étapes suivantes
GitHub Actions fournit plusieurs fonctionnalités pour la gestion de vos déploiements. Pour plus d’informations, consultez « Déploiement avec GitHub Actions ».