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. Deux approches fonctionnent bien : partir de zéro, ou adapter le template CI/CD officiel. Depuis zéro Utilisez cette approche quand vous n’avez pas encore de projet Mélodium et voulez 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, et si une étape produit un artefact que la 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 que Compo.toml déclare bien std, cicd, process et work au minimum, que le câblage -> reflète l’ordre et le parallélisme décrits, et qu’un traitement main est déclaré comme point d’entrée dans Compo.toml. Regardez aussi les valeurs cpu, memory et storage dans simpleStep, les valeurs par défaut collent rarement à votre charge de travail réelle, donc ajustez-les. 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 donc 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 préférez 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 simplement 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. Vérifiez que le câblage -> correspond à l’ordre décrit, que les étapes qui partagent la même source trigger sont bien censées s’exécuter en parallèle, et que les noms de fichiers d’artefacts concordent : si une étape utilise out_file et la suivante in_file, les noms doivent correspondre. Le template embarque de petites valeurs par défaut (cpu=100, memory=500) et des images de conteneurs choisies pour l’exemple, les deux méritent d’être revues pour votre charge de travail. 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, sans 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. Quelques prompts qui fonctionnent bien : “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 le serveur MCP MélodiumGénérer avec l'IA