introduction
Drone est une plateforme d'intégration et de livraison continue écrite en Go. Grâce aux intégrations avec de nombreux services de contrôle de version populaires, vous pouvez l’utiliser pour créer, tester et livrer des logiciels automatiquement chaque fois que votre code est mis à jour.
Dans ce tutoriel, nous allons créer un exemple de référentiel GitHub et utiliser Drone pour générer et tester le projet.
Conditions préalables
Avant de commencer ce didacticiel, Drone doit être installé, configuré et lié à votre compte GitHub. Les tutoriels suivants vous y mèneront:
-
How To Install and Use Docker on Ubuntu 16.04: installez Docker à l'aide deStep 1 etStep 2.
-
How To Install Docker Compose on Ubuntu 16.04: installer Docker Compose à l'aide deStep 1
-
How To Install Nginx on Ubuntu 16.04: installez Nginx sur le serveur en utilisantStep 1 etStep 2
-
How To Secure Nginx with Let’s Encrypt on Ubuntu 16.04: Sécuriser Nginx avec un certificat SSL
-
How To Install and Configure Drone on Ubuntu 16.04: installez Drone et associez-le à votre compte GitHub
Une fois terminé, vous devriez être connecté à Drone, sur un écran similaire à celui-ci:
C’est le tableau de bord de Drone. Cela montre que nous sommes connectés, mais qu’aucun référentiel n’a été configuré dans Drone. Créons maintenant un référentiel.
Forking de l'exemple de référentiel
Premièrement, nous aurons besoin d’un référentiel GitHub avec du code à construire et à tester. Vous pouvez utiliser Drone avec différents référentiels de contrôle de version, mais dans les conditions préalables, nous avons associé Drone à un compte GitHub. Nous allons donc l'utiliser tout au long de ce didacticiel. Connectez-vous à GitHub et accédez au dépôt suivant:
https://github.com/do-community/hello_hapi
Cliquez sur le boutonFork dans le coin supérieur droit pour copier ce référentiel dans votre propre compte. Si vous avez accès à plusieurs organisations GitHub, il vous sera peut-être demandé de choisir l'emplacement de destination du référentiel. Choisissez votre compte d'utilisateur normal. Après quelques instants, vous serez redirigé vers le référentielhello_hapi qui a été copié dans votre compte.
Nous verrons ensuite comment nous configurons Drone pour générer et tester notre code.
Comprendre le fichier .drone.yml
Drone recherche un fichier de configuration nommé.drone.yml
dans votre référentiel pour déterminer comment il doit gérer votre code. Ce fichier est déjà inclus dans le référentiel que nous venons de créer:
pipeline:
build:
image: node:latest
commands: npm install
test:
image: node:latest
commands: npm run test
Il s'agit d'un fichierYAML qui définit unpipeline. Un pipeline est un processus d'intégration continue qui exécute plusieurs étapes, l'une après l'autre. Dans notre cas, nous avons un pipeline en deux étapes.
La première étape, appeléebuild
utilisera l'image Docker denode:latest
pour exécuternpm install
dans notre référentiel. Cela téléchargera et installera toutes les bibliothèques nécessaires pour exécuter les tests.
L'étape suivante est appeléetest
. Il utilise la même image Docker pour exécuter notre suite de tests. Souvent, vous exécutez les commandesbuild
ettest
en une seule étape, mais nous les avons divisées pour mieux illustrer les pipelines.
Notez que toutes les étapes d'un pipeline partagent le même espace de travail. Par conséquent, les fichiers créés lors de la première étape seront disponibles ultérieurement. Drone a beaucoup plus d'options qui peuvent être configurées avec.drone.yml
, que vous pouvez lire dans lesDrone documentation. Certaines de ces fonctionnalités incluent:
-
Les constructions Matrix, dans lesquelles vous construisez et testez plusieurs versions d'une bibliothèque ou d'une exécution pour vérifier la compatibilité
-
Notifications par e-mail ou services de messagerie
-
Publication de produits de compilation sur npm, des registres de conteneurs ou des hôtes de sites statiques
Ensuite, nous dirons à Drone de surveiller les modifications apportées à notre référentiel, puis de déclencher une construction.
Déclenchement d'une exécution d'intégration continue
Connectez-vous à Drone, si vous ne l’êtes pas déjà. La page d'accueil semblera assez clairsemée jusqu'à ce que nous la configurions. La barre latérale vide nous invite àActivate your repositories to get started.
Cliquez sur le lienActivate pour afficher une liste de tous vos référentiels GitHub:
Trouvez le repohello_hapi et cliquez sur le bouton gris dans la colonne de droite pour l'activer. La bascule basculera et deviendra verte. Dans les coulisses, Drone utilisera l’API de GitHub pour s’assurer qu’il reçoit des notifications chaque fois que notre code change.
Revenez au tableau de bord de la page d'accueil en cliquant sur le logo Drone dans le coin supérieur gauche de l'écran ou en utilisant le menu situé dans le coin supérieur droit à côté de l'icône de l'utilisateur:
Notre nouveau référentiel sera désormais répertorié dans le tableau de bord du tableau de bord. Il n’ya pas encore d’informations sur l’état, car nous n’avons pas effectué de build:
Cliquez sur le nom du référentielhello_hapi pour accéder à une vue détaillée du référentiel. Il y aura des onglets où nous pourrons mettre à jour les paramètres, ajouter des secrets comme les jetons et les mots de passe, et obtenir des badges d'état de construction intégrables. Par défaut, nous sommes dans l'ongletBuilds, et aucune compilation n'est encore répertoriée.
Laissons déclencher une construction maintenant.
Laissez votre page Drone ouverte et accédez au référentiel GitHub dehello_hapi dans un autre onglet ou une autre fenêtre. Nous allons ajouter un fichier au projet afin de déclencher une construction. Tout fichier fera l'affaire. Cliquez sur le boutonCreate new file vers le haut de la liste des fichiers dans votre dépôt:
Choisissez n'importe quel nom de fichier. Dans ce cas, nous avons choisitrigger-file
. Entrez n'importe quel contenu:
Ensuite, faites défiler vers le bas de l'éditeur de contenu et cliquez sur le boutonCommit new file:
Lors de la validation, GitHub informera notre installation Drone de la modification. Drone va alors commencer une nouvelle construction. Revenez à la fenêtre de votre navigateur Drone. L'interface devrait se mettre à jour assez rapidement, et une flèche en rotation indiquera qu'une construction est en cours.
Il est peut-être déjà terminé si vous avez pris quelques instants pour revenir à Drone. Regardons les détails de la construction ensuite.
Affichage des résultats de CI / CD
Cliquez sur la construction pour accéder à une vue détaillée. Si la construction est toujours en cours, vous pourrez observer chaque étape du pipeline en temps réel.
Vous pouvez cliquer sur les flèches de divulgation pour chaque étape de la construction pour afficher plus de détails. Voici la sortie de notre étapetest:
Si l'étape est toujours en cours, cliquer sur le boutonFollow affichera la sortie telle qu'elle se produit.
Notez qu'il y a une étapeclone que nous n'avons pas définie dans notre fichier.drone.yml
. Ceci est toujours présent et donne des détails sur la façon dont Drone a récupéré votre code source avant la construction.
Conclusion
Dans ce didacticiel, nous avons créé un référentiel de démonstration, exploré le fichier de configuration de.drone.yml
et créé et testé notre référentiel avec Drone.
Pour plus d'informations sur la configuration de Drone pour créer, tester et déployer votre projet, reportez-vous auxDrone documentation.