DocsAvec l'IAConstruire un pipeline avec l'IAConstruire un pipeline avec l’IA Une fois la compétence Mélodium installée, vous pouvez demander à un assistant IA d’écrire ou d’adapter un pipeline CI/CD pour votre projet. Cette page couvre deux approches : partir de zéro, et adapter le template CI/CD officiel. Depuis Zéro Utilisez cette approche quand vous n’avez pas encore de projet Mélodium et souhaitez que l’IA génère tout à partir d’une description simple. Décrire votre pipeline Expliquez à l’IA ce dont votre projet a besoin en termes simples. Vous n’avez pas besoin de connaître la syntaxe Mélodium. Un prompt utile couvre : Ce qu’est le projet (langage, outil de build, framework de tests). Les étapes que le pipeline doit exécuter et dans quel ordre. L’image de conteneur nécessaire pour chaque étape. Si des étapes peuvent s’exécuter en parallèle. Si une étape produit un artefact que l’étape suivante consomme. Exemple : Crée un projet CI/CD Mélodium pour une application Rust. Le pipeline doit avoir deux étapes : 1. Build : exécuter "cargo build --release" dans un conteneur rust:latest, sortir le binaire. 2. Test : exécuter "cargo test" dans un conteneur rust:latest, en parallèle avec le build. Utilise simpleStep pour les deux. Câble-les pour que build et test s'exécutent en parallèle, tous deux déclenchés par startup. Génère un projet complet avec Compo.toml et un fichier main.mel. Utilise location="compose" pour les tests locaux. Relire le projet généré L’IA produira un Compo.toml et un ou plusieurs fichiers .mel. Avant d’exécuter quoi que ce soit, vérifiez : Dépendances : Compo.toml doit déclarer std, cicd, process et work au minimum. Dimensionnement des ressources : cpu, memory et storage dans simpleStep ont des valeurs par défaut qui peuvent ne pas correspondre à votre charge de travail. Ajustez-les. Ordre des étapes : vérifiez que le câblage -> reflète l’ordre et le parallélisme décrits. Point d’entrée : un traitement main doit être déclaré comme point d’entrée dans Compo.toml. Exécuter localement Demandez à l’IA d’écrire les fichiers directement, ou copiez le contenu généré dans un nouveau dossier de projet. Puis exécutez : melodium .melodium-ci/Compo.toml Avec location="compose" dans le CicdDispatchEngine, Mélodium utilise Podman Compose ou Docker Compose pour lancer les runners localement. Aucun compte Cadence.CI n’est nécessaire pour ce premier test. Note Le runtime de conteneurs doit être en cours d’exécution. C’est le cas par défaut avec Docker. Avec Podman, démarrez le service d’abord : podman system service --time 0 unix:///run/user/1000/podman/podman.sock Depuis le Template CI/CD Utilisez cette approche quand vous souhaitez partir d’un scaffold fonctionnel et laisser l’IA l’adapter à votre projet, plutôt que de tout générer depuis zéro. Créer le projet template À la racine de votre dépôt : melodium new --template cicd --path .melodium-ci cicd Cela crée .melodium-ci/ avec un Compo.toml, un lib-root.mel contenant des traitements build et test fonctionnels, et un advanced.mel avec une configuration de runner plus explicite. Le template est déjà un programme CI/CD valide ; le rôle de l’IA est de l’adapter à votre projet. Partager le template et décrire vos besoins Ouvrez votre conversation IA, joignez .melodium-ci/lib-root.mel, et décrivez ce dont votre projet a besoin. L’IA réécrira les traitements build et test (et en ajoutera d’autres) pour correspondre. Exemple : Voici mon template CI/CD Mélodium (lib-root.mel). Mon projet est une application Node.js. Mets à jour le pipeline pour : 1. Installer les dépendances avec "npm ci" dans un conteneur node:20. 2. Exécuter "npm run build" et "npm test" en parallèle après l'installation. 3. Si les deux réussissent, exécuter "npm run deploy" dans un conteneur node:20. Garde les mêmes paramètres de point d'entrée. Utilise simpleStep partout. Exemple avec passage d’artefacts : Mets à jour le pipeline pour que l'étape de build compile un binaire Go et le streame directement à l'étape de test, qui exécute des tests d'intégration sur le binaire sans recompiler. Utilise out_file dans l'étape de build et simpleStepWithInput dans l'étape de test. Relire les modifications Lisez le fichier .mel modifié avant de l’exécuter. Points clés à vérifier : Séquence des étapes : confirmez que le câblage -> correspond à l’ordre décrit. Étapes parallèles : les étapes qui partagent la même source trigger s’exécutent en parallèle. Vérifiez que c’est intentionnel. Flux d’artefacts : si une étape utilise out_file et la suivante in_file, vérifiez que les noms de fichiers correspondent. Dimensionnement des ressources : le template utilise de petites valeurs par défaut (cpu=100, memory=500). Ajustez selon votre charge de travail. Images de conteneurs : vérifiez que les images correspondent à ce dont votre projet a besoin. Validez la syntaxe à tout moment avec : melodium check .melodium-ci/lib-root.mel Exécuter et itérer melodium .melodium-ci/Compo.toml \ --api_token <VOTRE_TOKEN_RUN_API> \ --output_directory ./logs \ --repository_clone_url <URL_CLONE_COMPLETE>.git \ --repository_clone_ref main Ou avec distribution locale (pas de cluster externe nécessaire) : melodium .melodium-ci/Compo.toml \ --work_location compose \ --api_token <VOTRE_TOKEN_RUN_API> \ --output_directory ./logs \ --repository_clone_url <URL_CLONE_COMPLETE>.git \ --repository_clone_ref main Itérer avec l’IA Dans les deux approches, continuez à demander à l’IA d’affiner le pipeline : “Ajoute une étape de déploiement qui ne s’exécute que si build et test réussissent tous les deux.” “Fais en sorte que l’étape de build streame le binaire vers l’étape de test au lieu de recompiler.” “Ajoute une étape de lint qui s’exécute en parallèle avec le build.” “Ajoute une étape qui s’exécute toujours, même si le build échoue.” “Passe à la configuration de runner avancée pour contrôler les ressources des conteneurs individuellement.” L’IA peut lire et modifier les fichiers .mel qu’elle a générés. Pour la configuration de runner avancée (setupRunner / stepOn / stopRunner), demandez-lui de réécrire en utilisant advanced.mel comme base. La compétence inclut la référence complète pour ces traitements. Vous pouvez toujours valider le résultat sans exécuter le pipeline complet : melodium check .melodium-ci/lib-root.mel Pour aller plus loin Une fois le pipeline fonctionnel localement, connectez-le à Cadence.CI et à votre service Git : Exécuter sur GitHub Actions Exécuter sur GitLab CI Patterns de pipeline avancés Installer la compétence MélodiumGénérer avec l'IA