DocsGithubAutomated Migration ToolAutomated Migration Tool The Automated Migration system is available to proceed to full Github Actions migrations to Cadence.CI. Proceed to Migration Provide a full git clone URL (https://github.com/<user>/<project>.git) to the migration tool, and optionnally specify the branch. The migration process can take up to few minutes to complete. Once completed, an access to migration log and zipped result file is available. The log file contains the details of the migration process, and is mostly useful to diagnose what goes wrong when migration is failing. Result zip contains three entries: .github .melodium-ci Migration Report.txt Migration Report.txt file contains details about what has been done, and specify elements that might require some attention. .github directory contains, under workflows/, the updated .yml files designed to work with the project, matching the original workflow files. .melodium-ci directory contains the Mélodium code implementing the full CI, that can be explored through the CI/CD Browser as well. It is perfectly possible to take only parts of the restitued migration, as well as calling only specific entrypoints . Restitued Project Restitued project is composed as follows: ci/github contains the workflows defined in the given project; ci/github/actions contains actions defined in the given project; ci/github/actions/third embeds all the third-party actions used within the CI, node/JS, docker, and composite actions are supported; ci/github/workflows contains reusable workflows defined in the given project; ci/github/workflows/third embeds all the third-party reusable workflows used within the CI. For every third-party action or workflow, some data migth have been carried. It is useful to look out those files, especially in case of docker actions without prebuilt images, as the migration tool might not have been able to detect precisely what is used or not, and remove unused files. Infrastructure The infrastructure used after the migration stays the same as the original project, here the Github Runners, either provided by Github SaaS or self-hosted. The optimization provided by Cadence.CI here is at the synchronization and jobs parallelization level, fewer machines being used for the same tasks. Machines can be either Ubuntu, Windows, or MacOS. Elements Some elements are widely used by the migration tool, and are useful to fully adapt the CI/CD in a Github situation. runAction The runAction treatment reproduces the smallest unit of execution in the sense of Github Actions. It works with a contexts engine embedding the Github-like contexts. githubStringEval and githubMapEval githubStringEval and githubMapEval are treatments used to evaluate strings according to the Github Action Syntax. It takes a contexts engine embedding the Github-like contexts. postGithubStateContext and postGithubState postGithubStateContext and postGithubState are treatments used to report states to Github. postGithubState requires parameters to report state, while postGithubStateContext use the provided context. Extend with other elements The generated migration gives a Mélodium program that can be extended with any element, either designed for Github Actions or not. In order to use full distribution features, take a look at Simple CI/CD Implementation and Advanced CI/CD Implementation. About Matrix and Runners Github matrix are not reproduced as-is by the migration tool. Instead, a treatment can be used to mutualize all the common parts of all the matrix cases, and enable full factorization of the work. If matrix do not have any mutualizable steps, then distinct call of the treatment with different parameters is enough. The migration tool specify the same runners as the original CI/CD description made in Github Action. As most actions/jobs/workflows are factorized on one same runner, it can be useful to consider to update its characteristics if needed.Generate with AIReusable Workflows