Passer aux informations sur le produit
Conception et exploitation pratiques d'un système CI/CD avec GitHub Actions
Conception et exploitation pratiques d'un système CI/CD avec GitHub Actions
Description
Introduction au livre
D'un développeur qui s'occupe d'automatisation à un développeur qui conçoit l'automatisation

L'automatisation de vos processus de test, de publication et de déploiement permettra non seulement d'accélérer le développement, mais aussi d'améliorer la collaboration.
GitHub Actions est un outil puissant pour automatiser le code. Il ne se contente pas de faire gagner du temps, mais vous permet également de concevoir votre propre environnement de développement.
Sélectionné parmi les 10 meilleurs livres techniques des Japan IT Engineer Book Awards 2025, cet ouvrage explique comment concevoir et exploiter un système CI/CD pratique à l'aide de GitHub Actions.
Il explique de manière systématique des éléments clés tels que la configuration des flux de travail, l'automatisation des mises en production, l'intégration au cloud et la stratégie de sécurité, et présente des méthodes pour concevoir un système d'automatisation maintenable à travers divers exemples pratiques.
Il constituera un guide précieux pour les développeurs souhaitant simplifier les flux de travail complexes et construire leurs propres systèmes d'automatisation.
  • Vous pouvez consulter un aperçu du contenu du livre.
    Aperçu
","
indice
Préface du traducteur xvi
Revue du lecteur bêta xvii
Remerciements xxi
À propos de ce livre xxii

PARTIE I : Notions de base 1

CHAPITRE 1 Développement logiciel et GitHub 3
1.1 Développement logiciel 3
1.2 CI/CD 4
1.3 GitHub 8
1.4 Mise en place de l'environnement 11
1.5 Résumé 14

CHAPITRE 2 : Concepts de base de GitHub Actions 16
2.1 Commençons par GitHub Actions 16
2.2 Composants de GitHub Actions 18
2.3 Exécution de GitHub Actions 21
2.4 Erreur GitHub Actions 23
2.5 Comment exécuter un flux de travail 26
2.6 Gestion de l'exécution des flux de travail 29
2.7 Environnement d'exécution des tâches 31
2.8 Action 34
2.9 Modèle de facturation de GitHub Actions 35
2.10 Résumé 36
[COLONNE] Références : Technologie de base 37

CHAPITRE 3 Notions de base de la syntaxe des flux de travail 38
3.1 Contexte 38
3.2 Variables d'environnement 40
3.3 Variable 43
3.4 Secret 45
3.5 Équation 48
3.6 Fonction 50
3.7 Branchement conditionnel 53
3.8 Conventions de dénomination 54
3.9 Partage de données entre les étapes 56
3.10 Exécution de l'API GitHub 58
[COLUMN] Autorisations de lecture du code source et types de dépôts 62
3.11 Flux de travail de démarrage 63
3.12 Résumé 65

CHAPITRE 4 Implémentation CI 66
4.1 Exécution de l'intégration continue à l'aide de demandes d'extraction 66
4.2 Tests automatisés 68
4.3 Filtrage des événements 73
4.4 Configuration Action 75
4.5 Analyse statique 78
4.6 Délai d'attente 81
4.7 Shell 81
4.8 concurrence 83
4.9 La règle d'or de CI 86
4.10 Comment exécuter des tests automatisés 88
4.11 Fonctionnement de l'analyse statique 92
[COLONNE] Enregistrement : Raisons de la suppression 92
4.12 Résumé 93
[COLONNE] Références : Tests et documentation 94

CHAPITRE 5 Conception de flux de travail faciles à utiliser 95
5.1 Boîte à outils pour la conception de flux de travail 95
5.2 Log 96
5.3 Rapport 101
5.4 Notifications de chat 103
5.5 Contrôle de l'exécution de plusieurs tâches 105
5.6 Matrice 108
5.7 Environnements 111
[COLONNE] Il existe trois types de variables et de secrets 115
5.8 Cache 115
5.9 Artefact 120
5.10 Résumé 123

CHAPITRE 6 Modularisation avec actions 124
6.1 Classification des actions 124
6.2 Action composée 126
6.3 Syntaxe des métadonnées 129
6.4 Différences entre la syntaxe des métadonnées et la syntaxe du flux de travail 132
6.5 Techniques de conception d'actions 134
[COLONNE] Actions et Node.js Version 137
6.6 Résumé 137
[COLONNE] Références : Conception logicielle 138

PARTIE II : EXERCICE PRATIQUE 139

CHAPITRE 7 Maintenir un dépôt propre 141
7.1 Revue de code 141
7.2 Protection des succursales 142
7.3 Maintenir un sentiment d'appartenance 146
7.4 Prévention des intrusions d'identifiants 148
7.5 Documentation 151
7.6 Résumé 153

CHAPITRE 8 Mise à jour des dépendances avec Dependabot 154
8.1 Dépendances 154
8.2 Dependabot 156
8.3 Fusion automatique via GitHub Actions 162
8.4 Conception du flux de travail de Dependabot 167
Portée de l'impact de la mise à jour 169 de la version 8.5
8.6 Stratégie de fusion automatique 171
[COLONNE] Ceux qui ignorent le délimiteur pleureront à cause du délimiteur 172
8.7 Résumé 173

CHAPITRE 9 Automatisation des mises en production avec GitHub Releases 174
Version logicielle 9.1, version 174
9.2 Contrôle de version 175
9.3 Avis 177
Version 9.4 GitHub 179
9.5 Notes de version générées automatiquement 181
Automatisation des versions 9.6 185
9.7 Protection des étiquettes Git 189
9.8 Résumé 192
[COLONNE] Références : Développement logiciel 193

CHAPITRE 10 : Gestion des paquets avec GitHub Packages 194
10.1 Paquet 194
10.2 Package GitHub 196
10.3 Registre des conteneurs 197
10.4 Gestion des paquets GitHub 199
10.5 Liaison automatique et héritage des autorisations dans les packages 202
10.6 Libération automatique des images de conteneur 205
10.7 Résumé 211
[COLONNE] Références : Technologie des conteneurs 212

CHAPITRE 11 Intégration sécurisée au cloud avec OpenID Connect 213
11.1 Informations d'authentification du service cloud 213
11.2 OpenID Connect 215
11.3 Gestion des risques liés aux travaux de vérification 218
[COLONNE] Sécurité du cloud 219
11.4 Préparation à l'utilisation d'OpenID Connect sur AWS 220
11.5 Intégration AWS via OpenID Connect 225
11.6 Fonctionnement sécurisé des rôles cloud 230
11.7 Résumé 231
[COLONNE] Références : Infrastructure 232

CHAPITRE 12 ORCHESTRE ET DÉPLOIEMENT DES CONTENEURS 233
12.1 Service 233
12.2 Création de l'environnement d'exécution 235
12.3 Gestion des variables pour l'information de distribution 240
12.3.1 Vérification des informations de déploiement 241 / 12.3.2 Enregistrement des informations de déploiement 242
12.4 Automatisation du déploiement 242
[COLONNE] Action basée sur le nœud 16 : 243
Déploiement dans plusieurs environnements à l'aide de 12.5 environnements 250
12.6 Conception du déploiement 255
12.7 Résumé 256

CHAPITRE 13 Actions d'open source 257
13.1 Action Release 257
13.2 Test d'action 261
13.3 Gestion des versions des actions 265
13.4 Documentation des actions 269
Version 13.5 publiée sur GitHub Marketplace 270
13.6 Le processus évolutif de l'action 273
13.7 Résumé 275
[COLONNE] Références : Opérations 275

PARTIE III APPLICATIONS 277

CHAPITRE 14 Utilisations avancées de GitHub Actions 279
14.1 Flux de travail réutilisables 279
14.2 Définition des flux de travail dynamiques 288
14.3 Gestion des erreurs 290
14.4 Contrôle du flux par le contexte 292
14.5 Actions privées et flux de travail réutilisables privés 295
14.6 Résumé 296
[COLONNE] Références : Sécurité 297

CHAPITRE 15 La sécurité dans GitHub Actions 298
15.1 Chaîne d'approvisionnement logicielle 298
15.2 Principes de conception de sécurité 300
15.3 Caractéristiques du service GitHub 301
15.4 Protection du référentiel 302
15.5 Sécurité des actions extérieures 304
15.6 Injection de script 308
15.7 Privilèges minimaux 309
15.8 Gestion des secrets 311
15.9 Contre-mesure relative aux demandes d'extraction de fork 313
15.10 Configuration OpenID Connect 315
[COLONNE] Règle Push 322
15.11 Résumé 323

CHAPITRE 16 Déplacement vers la gauche en matière de sécurité 324
16.1 Décalage à gauche 324
16.2 Recherche de vulnérabilités dans les dépendances 325
16.3 Protection secrète 330
16.4 Sécurité des applications 333
[COLONNE] Analyse des registres de conteneurs à la recherche de vulnérabilités 335
16.5 Sécurité IaC 335
16.6 Améliorations continues de la sécurité 338
16.7 Résumé 339

CHAPITRE 17 Accès à d'autres dépôts à l'aide de jetons d'application GitHub 340
17.1 Informations d'authentification GitHub 340
17.2 Jeton d'application GitHub 342
17.3 Accès à d'autres dépôts 347
[COLONNE] Supprimez rapidement les clés secrètes 348
[COLONNE] 350 pour le lecteur curieux
17.4 Comment les jetons d'application GitHub sont générés 350
17.5 Techniques opérationnelles des jetons d'application GitHub 357
17.6 Résumé 360
[COLONNE] Références : Systems Design 360

CHAPITRE 18 Exercices sur CD 361
18.1 Performance organisationnelle 361
18.2 Stratégie de contrôle de version 363
18.3 Stratégie de test 364
18.4 Stratégie de lancement 365
18.5 Gestion des modifications de la base de données 366
18.6 Gestion du changement dans l'IaC 367
18.7 Architecture faiblement couplée 369
18.8 N'oubliez pas d'utiliser 370
18.9 Apprentissage continu 371
18.10 Résumé 372

En conclusion 373
Recherche 375
","
Image détaillée
Image détaillée 1
","
Dans le livre
Lorsque le système d'exploitation exécute une commande, il renvoie une valeur appelée état de terminaison.
En cas de succès, renvoie 0, sinon renvoie une valeur non nulle.
Dans les systèmes d'exploitation de type Unix, vous pouvez vérifier le code de sortie de la commande exécutée le plus récemment en consultant la variable $?.
Par exemple, essayons d'exécuter une commande inexistante :
En cas d'échec de l'exécution, une valeur différente de 0 sera affichée.
GitHub Actions utilise exactement cet état final.
--- p.25

GitHub fournit une API qui peut être intégrée aux programmes ; cette API est appelée API GitHub.
Par exemple, vous pouvez utiliser curl ou un outil similaire pour ajouter des commentaires ou des étiquettes aux demandes d'extraction.
L'interface de ligne de commande GitHub, présentée précédemment, utilise également l'API GitHub en interne.
GitHub Actions offre un accès facile à l'API GitHub.
Si vous utilisez GitHub Host Runner, vous pouvez utiliser l'interface de ligne de commande GitHub préinstallée.

--- p.58

Certains résultats d'analyse statique contiennent des avertissements de faible importance.
Par conséquent, il existe des cas où cet avertissement est considéré comme une « absence de suite ».
Ignorer simplement l'avertissement à ce stade n'est pas une bonne solution.
Les avertissements ignorés deviennent du bruit.
Supprimons les avertissements inutiles.
Cela ne demande pas autant de travail que vous pourriez le penser.
Lorsqu'il s'agit de supprimer les avertissements, deux options sont à considérer :
Que la cible de la suppression soit l'ensemble du code source ou limitée à une partie spécifique.
Le premier est contrôlé par des fichiers de configuration, etc.
Cette dernière méthode consiste à insérer directement dans le code à supprimer des mots-clés spécifiques.
La méthode précise varie selon l'outil.
Effectuons une recherche dans la documentation de l'outil à l'aide de mots-clés tels que ignorer ou supprimer.
Comme il s'agit d'un événement courant, il y aura probablement une trace écrite de celui-ci.

--- p.92

GitHub Releases est un service qui assure la distribution de logiciels et les notifications de modification.
Vous pouvez téléverser des fichiers arbitraires jusqu'à 2 Go par version en les liant avec des étiquettes Git.
Les versions GitHub sont souvent utilisées pour la distribution d'outils en ligne de commande.
Par exemple, si vous créez un seul fichier exécutable binaire en Go et que vous le distribuez.
Il convient aux usages simples où vous avez seulement besoin de pouvoir télécharger des fichiers.
Il existe également une méthode d'utilisation qui ne distribue que les notes de version sans distribuer le logiciel.
Les versions GitHub sont naturellement liées aux dépôts.
Vous pouvez suivre les différences entre les versions dans votre navigateur jusqu'au niveau du commit.
Il peut être manipulé via l'interface de ligne de commande GitHub et est facile à automatiser.

--- p.179

L'utilisation d'OIDC dans GitHub Actions élimine la nécessité de gérer des identifiants statiques sur GitHub.
Parce que vous pouvez obtenir des informations d'authentification temporaires.
Les identifiants temporaires sont plus sûrs et plus faciles à utiliser que les identifiants statiques.
Il y a aussi d'autres avantages.
Cela signifie que vous pouvez contrôler précisément qui peut accéder au service cloud lors de l'authentification.
Par exemple, avec GitHub Actions, vous pouvez accorder l'accès uniquement à des dépôts spécifiques.
Il s'agit d'un autre effet secondaire de l'utilisation d'OIDC.

--- p.216

Les informations d'authentification telles que les clés d'accès sont des actifs qui nécessitent une confidentialité élevée.
Les identifiants sont des données extrêmement précieuses pour les attaquants.
D'autre part, les informations d'authentification sont aussi des informations qui sont facilement manipulées avec négligence.
Certaines personnes y parviennent sous forme de texte non crypté.
Même en laissant de côté le contrôle de version des textes, la bonne gestion des informations d'authentification est une tâche assez difficile.
Une fuite pourrait potentiellement survenir en raison d'une erreur humaine, c'est pourquoi des efforts considérables sont nécessaires pour l'éviter.
Il n'y a pas de récompense évidente, mais les erreurs peuvent causer des dégâts énormes.
--- p.311
","
Avis de l'éditeur
Le système CI/CD de GitHub, qui était géré instinctivement, est désormais correctement conçu.

De nombreux développeurs utilisent GitHub Actions, mais peu ont l'expérience nécessaire pour concevoir leur structure.
Il existe encore de nombreux cas où les gens se fient à leur intuition pour gérer l'intégration continue et la livraison continue (CI/CD) ou se contentent de copier-coller des paramètres complexes.
Cependant, l'automatisation ainsi créée est non seulement difficile à maintenir, mais aussi impossible à faire évoluer.
Ce livre rompt avec ces approches vagues et vous guide dans la conception et l'exploitation d'un système CI/CD pratique centré sur GitHub Actions.

Ce livre, composé de trois parties, fournit un savoir-faire étape par étape, des notions de base aux techniques avancées et appliquées.
La première partie explique la nécessité de l'intégration continue et de la livraison continue (CI/CD) ainsi que les concepts de base de GitHub Actions.
Apprenez la syntaxe des flux de travail, le traitement des conditions, les variables d'environnement, etc., et posez les bases de l'automatisation des tests et de la conception de l'intégration continue.
La deuxième partie est consacrée aux applications pratiques, couvrant la conception de la structure du référentiel, l'automatisation des dépendances, le déploiement des versions et l'intégration au cloud, ainsi que des flux d'automatisation prêts à l'emploi et des sujets avancés tels que l'authentification OIDC et la gestion des actions open source.
La partie 3 explique comment maintenir un système stable même dans des environnements complexes grâce aux jetons d'application, aux stratégies de sécurité et aux fonctionnalités d'action avancées.


Ce livre n'est pas simplement un guide technique qui vous apprend à utiliser GitHub Actions.
Plutôt que de simplement expliquer le code, nous allons examiner pourquoi il doit être conçu de cette manière et comment créer une structure qui perdurera longtemps sur le terrain.
Il s'agit d'un guide de conception pratique destiné à ceux qui souhaitent structurer l'automatisation et changer la culture de développement de leurs équipes et organisations.
En reconnaissance de son aspect pratique et de son expertise, il a été sélectionné parmi les 10 meilleurs ouvrages techniques des Japan IT Engineer Book Awards 2025.
Ce livre est le point de départ pour devenir un développeur qui comprend l'automatisation et sait concevoir des structures.

Public cible

● GitHub Actions est destiné aux nouveaux utilisateurs de GitHub.
● Les praticiens qui ne connaissaient que le concept d'intégration continue/déploiement continu (CI/CD)
● Les développeurs qui souhaitent apprendre l'automatisation de manière systématique

Contenu principal

● Comprendre la structure et la syntaxe du flux de travail de GitHub Actions
● Méthode de configuration des conditions d'exécution du flux de travail et de l'environnement
● Mettre en œuvre des tests automatisés, le déploiement en production et le déploiement des packages
● Comment appliquer des actions personnalisées et des stratégies de modularisation
● Comment mettre à jour les dépendances et maintenir un dépôt propre
● Intégration de l'authentification des services cloud via OpenID Connect
● Utilisation des jetons d'application GitHub pour l'intégration inter-dépôts
● Stratégie de conception CI/CD axée sur la pratique et stratégie d'exploitation de la sécurité
"]
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 8 juillet 2025
- Nombre de pages, poids, dimensions : 404 pages | 188 × 245 × 19 mm
- ISBN13 : 9791194587248
- ISBN10 : 1194587240

Vous aimerez peut-être aussi

카테고리