Pour créer un pipeline d'intégration continue et de prestation continue (CICD) dans Code Stream, vous pouvez manuellement ajouter des étapes et des tâches. Pour planifier votre build native CICD, vous allez collecter les informations dont vous avez besoin, puis créer un pipeline et y ajouter manuellement des étapes et des tâches.

Vous devrez planifier les étapes d'intégration continue (Continuous Integration, CI) et de livraison continue (Continuous Delivery, CD) de votre pipeline. Après la création et l'exécution de votre pipeline, vous pourrez surveiller les tendances en matière d'exécution de pipeline.

Lorsqu'un pipeline inclut une image de Docker Hub, vous devez vous assurer que l'image intègre cURL ou wget avant d'exécuter le pipeline. Lorsque le pipeline s'exécute, Code Stream télécharge un fichier binaire qui utilise cURL ou wget pour exécuter des commandes.

L'espace de travail de pipeline Code Stream prend en charge Docker et Kubernetes pour les tâches d'intégration continue et les tâches personnalisées.

Pour plus d'informations sur la configuration de l'espace de travail, consultez Configuration de l'espace de travail de pipeline.

Planification des exigences externes et internes

Pour planifier les étapes d'intégration continue et de livraison continue, les exigences suivantes indiquent les opérations à effectuer avant de créer votre pipeline.

Cet exemple utilise un espace de travail Docker.

Pour créer un pipeline à partir de cet exemple de plan, vous allez utiliser un hôte Docker, un référentiel Git, le type de build Maven et plusieurs outils de génération de post-processus.

Points de terminaison et référentiels dont vous aurez besoin :

  • D'un référentiel de code source Git dans lequel vos développeurs archivent leur code. Code Stream intègre la toute dernière version du code dans le pipeline lorsque les développeurs valident les modifications.
  • D'un point de terminaison Docker pour l'hôte de la build Docker qui exécutera les commandes de la build dans un conteneur.
  • D'une image de générateur qui crée le conteneur sur lequel les tests d'intégration continue s'exécutent.
  • D'un point de terminaison de registre d'images afin que l'hôte de la build Docker puisse en extraire l'image du générateur.

Vous aurez besoin d'accéder à un projet. Projet qui regroupe tous vos travaux, y compris votre pipeline, vos points de terminaison et vos tableaux de bord. Assurez-vous d'être membre d'un projet dans Code Stream. Si ce n'est pas le cas, demandez à un administrateur de Code Stream de vous ajouter en tant que membre d'un projet. Reportez-vous à la section Ajout d'un projet dans Code Stream.

Vous aurez besoin d'un Webhook Git, ce qui permet à Code Stream d'utiliser le déclencheur Git pour déclencher votre pipeline lorsque les développeurs valident les modifications apportées au code. Reportez-vous à la section Utilisation du déclencheur Git dans Code Stream pour exécuter un pipeline.

Création du pipeline CICD et configuration de l'espace de travail

Vous devrez créer le pipeline, puis configurer l'espace de travail, les paramètres d'entrée de pipeline et les tâches.

Pour créer le pipeline, cliquez sur Pipelines > Nouveau pipeline > Canevas vide.

Lorsque vous créez un pipeline, vous pouvez utiliser le canevas vide.

Dans l'onglet Espace de travail, entrez les informations sur l'intégration continue :

  • Incluez votre hôte de build Docker.
  • Entrez l'URL de votre image de générateur.
  • Sélectionnez le point de terminaison de registre d'images afin que le pipeline puisse en extraire l'image. Le conteneur exécute les tâches de CI et déploie votre image. Si le registre requiert des informations d'identification, vous devez d'abord créer le point de terminaison de registre d'images, puis le sélectionner ici pour que l'hôte puisse extraire l'image du registre.
  • Ajoutez les artefacts qui doivent être mis en cache. Pour qu'une build aboutisse, des artefacts tels que les répertoires sont téléchargés sous forme de dépendances. Le cache est l'emplacement dans lequel se trouvent ces artefacts. Par exemple, les artefacts dépendants peuvent inclure le répertoire .m2 pour Maven et le répertoire node_modules pour le Node.js. Ces répertoires sont mis en cache sur toutes les exécutions de pipeline pour gagner du temps lors des générations.

    Lorsque vous créez manuellement un pipeline, vous configurez l'espace de travail du pipeline dans l'onglet Espace de travail.

Dans l'onglet Entrée, configurez les paramètres d'entrée de pipeline.

  • Si votre pipeline utilise des paramètres d'entrée à partir d'un événement déclencheur Git, Gerrit ou Docker, sélectionnez le type de déclencheur pour les paramètres d'insertion automatique. Ces événements sont les suivants : Modifier l'objet de Gerrit ou Git ou Nom du propriétaire de l'événement pour Docker. Si votre pipeline n'utilise aucun paramètre d'entrée transmis par l'événement, laissez les paramètres d'insertion automatique définis sur Aucun.
  • Pour appliquer une valeur et une description à un paramètre d'entrée de pipeline, cliquez sur les trois points verticaux, puis sur Modifier. La valeur que vous saisissez est utilisée comme entrée pour les tâches, les étapes ou les notifications.
  • Pour ajouter un paramètre d'entrée de pipeline, cliquez sur Ajouter. Par exemple, vous pouvez ajouter le paramètre approvers pour afficher une valeur par défaut pour chaque exécution, mais que vous pouvez remplacer par un autre approbateur lors de l'exécution.
  • Pour ajouter ou supprimer un paramètre inséré, cliquez sur Ajouter/supprimer le paramètre inséré. Par exemple, vous pouvez supprimer un paramètre inutilisé pour réduire l'encombrement sur la page de résultats et afficher uniquement les paramètres d'entrée utilisés.

    Lorsque vous créez manuellement un pipeline CICD, vous configurez les paramètres d'entrée dans l'onglet Entrée.

Configurez le pipeline pour tester votre code :

  • Ajoutez et configurez une tâche de CI.
  • Incluez les étapes pour exécuter mvn test sur votre code.
  • Pour identifier les problèmes après l'exécution de la tâche, exécutez des outils de build post-processus, tels que JUnit et JaCoCo, FindBugs et Checkstyle.

    Pour tester votre code, configurez la tâche CI avec des étapes et des outils de build post-processus.

Configurez le pipeline pour générer votre code :

  • Ajoutez et configurez une tâche de CI.
  • Incluez les étapes qui exécutent mvn clean install sur votre code.
  • Incluez l'emplacement et le nom du fichier JAR pour qu'il conserve votre artefact.

    Pour créer votre code, ajoutez les étapes dans la tâche CI.

Configurez le pipeline pour publier votre image sur votre hôte Docker :

  • Ajoutez et configurez une tâche de CI.
  • Ajoutez des étapes qui valideront, exporteront, généreront et transféreront votre image.
  • Ajoutez la clé d'exportation de IMAGE que la tâche suivante utilisera.

    Pour publier votre image sur votre hôte Docker, ajoutez les étapes et la clé d'exportation dans la tâche CI.

Après avoir configuré l'espace de travail, les paramètres d'entrée, les tâches de test et les tâches de build, enregistrez votre pipeline.

Activation et exécution de votre pipeline

Après avoir configuré votre pipeline avec des étapes et des tâches, vous pouvez enregistrer et activer le pipeline.

Ensuite, patientez le temps que le pipeline s'exécute et se termine, puis vérifiez qu'il a abouti. S'il a échoué, corrigez les erreurs et exécutez-le à nouveau.

Une fois que le pipeline a abouti, voici quelques éléments que vous souhaiterez peut-être vérifier :

  • Examinez l'exécution du pipeline et affichez les résultats des étapes des tâches.
  • Dans l'espace de travail de l'exécution du pipeline, localisez les détails concernant votre conteneur et le référentiel Git cloné.
  • Dans l'espace de travail, examinez les résultats de vos outils post-processus, et recherchez les erreurs, la couverture du code, les bogues et les problèmes de style.
  • Vérifiez que votre artefact est préservé. Vérifiez également que l'image a été exportée avec le nom et la valeur IMAGE.
  • Accédez à votre référentiel Docker et vérifiez que le pipeline a publié votre conteneur.

Pour obtenir un exemple détaillé illustrant l'intégration continue de votre code par Code Stream, reportez-vous à la section Intégration continue du code d'un référentiel GitHub ou GitLab à un pipeline dans Code Stream.