DocsGithubOutil de Migration AutomatiséOutil de Migration Automatisé Le système de migration automatisé est disponible pour procéder à des migrations complètes de Github Actions vers Cadence.CI. Procéder à la migration Fournissez une URL git clone complète (https://github.com/<user>/<project>.git) à l’outil de migration, et spécifiez optionnellement la branche. Le processus de migration peut prendre quelques minutes. Une fois terminé, un accès au journal de migration et au fichier résultat zippé est disponible. Le fichier journal contient les détails du processus de migration et est surtout utile pour diagnostiquer ce qui ne va pas lorsque la migration échoue. Le zip résultant contient trois entrées : .github .melodium-ci Migration Report.txt Le fichier Migration Report.txt contient des détails sur ce qui a été fait, et précise les éléments qui pourraient nécessiter une attention particulière. Le répertoire .github contient, sous workflows/, les fichiers .yml mis à jour conçus pour fonctionner avec le projet, correspondant aux fichiers de workflow d’origine. Le répertoire .melodium-ci contient le code Mélodium implémentant l’intégralité du CI, explorable via le Navigateur CI/CD. Il est tout à fait possible de ne prendre que certaines parties de la migration restituée, ainsi que d’appeler uniquement des points d’entrée spécifiques. Projet restitué Le projet restitué est composé comme suit : ci/github contient les workflows définis dans le projet donné ; ci/github/actions contient les actions définies dans le projet donné ; ci/github/actions/third embarque toutes les actions tierces utilisées dans le CI, les actions node/JS, docker et composite sont supportées ; ci/github/workflows contient les workflows réutilisables définis dans le projet donné ; ci/github/workflows/third embarque tous les workflows réutilisables tiers utilisés dans le CI. Pour chaque action ou workflow tiers, certaines données ont pu être portées. Il est utile d’examiner ces fichiers, en particulier dans le cas d’actions docker sans images préconstruites, car l’outil de migration n’a peut-être pas pu détecter précisément ce qui est utilisé ou non, et supprimer les fichiers inutilisés. Infrastructure L’infrastructure utilisée après la migration reste la même que le projet d’origine, ici les GitHub Runners, qu’ils soient fournis par GitHub SaaS ou auto-hébergés. L’optimisation apportée par Cadence.CI se situe au niveau de la synchronisation et de la parallélisation des jobs, moins de machines étant utilisées pour les mêmes tâches. Les machines peuvent être Ubuntu, Windows ou MacOS. Éléments Certains éléments sont largement utilisés par l’outil de migration et sont utiles pour adapter pleinement le CI/CD dans un contexte Github. runAction Le traitement runAction reproduit la plus petite unité d’exécution au sens de Github Actions. Il fonctionne avec un moteur contexts embarquant les contextes de type Github. githubStringEval et githubMapEval githubStringEval et githubMapEval sont des traitements utilisés pour évaluer des chaînes selon la syntaxe GitHub Action. Ils prennent un moteur contexts embarquant les contextes de type Github. postGithubStateContext et postGithubState postGithubStateContext et postGithubState sont des traitements utilisés pour remonter des états vers Github. postGithubState nécessite des paramètres pour remonter l’état, tandis que postGithubStateContext utilise le contexte fourni. Étendre avec d’autres éléments La migration générée donne un programme Mélodium qui peut être étendu avec n’importe quel élément, qu’il soit conçu pour Github Actions ou non. Pour utiliser les fonctionnalités de distribution complète, consultez Implémentation CI/CD Simple et Implémentation CI/CD Avancée. À propos des matrices et des runners Les matrices GitHub ne sont pas reproduites telles quelles par l’outil de migration. À la place, un traitement peut être utilisé pour mutualiser toutes les parties communes de tous les cas de matrice, et permettre une factorisation complète du travail. Si les matrices ne comportent pas d’étapes mutualisables, des appels distincts du traitement avec différents paramètres suffisent. L’outil de migration spécifie les mêmes runners que la description CI/CD d’origine faite dans GitHub Actions. Comme la plupart des actions/jobs/workflows sont factorisés sur un même runner, il peut être utile d’envisager de mettre à jour ses caractéristiques si nécessaire.Générer avec l'IAWorkflows Réutilisables