DocsGithubReusable WorkflowsReusable Workflows Make sure you previously read CI/CD with Mélodium. Reusable Workflow Github Action reusable workflows are available to run Mélodium within Github runners: Mélodium Reusable Workflows . Mélodium on Github Action The configuration to add in Github YAML is: jobs: melodium: uses: melodium-tech/github-actions/.github/workflows/melodium.yml@v0.10 with: command: run .melodium-ci/Compo.toml --api_token <YOUR_RUN_API_TOKEN> --output_directory logs --repository_clone_url "${{ github.repositoryUrl }}" --repository_clone_ref "${{ github.ref_name }}" --on_github true --ci_service_token "${{ github.token }}" --ci_service_project "${{ github.repository }}" --ci_service_sha "${{ github.sha }}" artifact-path: 'logs/' secrets: token: ${{ secrets.token }} Refer to melodium.yml for full list of input parameters. Dispatch Work Within GA Runner A reusable workflow to run Mélodium with local distribution is available: jobs: melodium: uses: melodium-tech/github-actions/.github/workflows/melodium-local-distrib.yml@v0.10 with: command: run .melodium-ci/Compo.toml --work_location compose --api_token <YOUR_RUN_API_TOKEN> --output_directory logs --repository_clone_url "${{ github.repositoryUrl }}" --repository_clone_ref "${{ github.ref_name }}" --on_github true --ci_service_token "${{ github.token }}" --ci_service_project "${{ github.repository }}" --ci_service_sha "${{ github.sha }}" artifact-path: 'logs/' secrets: token: ${{ secrets.token }} Using local distribution in Github Actions allows to make full use of provided runners without relying on additional cluster. Refer to melodium-local-distrib.yml for full list of input parameters. Windows Runner A reusable workflow to run Mélodium on Windows runner is available: jobs: melodium: uses: melodium-tech/github-actions/.github/workflows/melodium-windows.yml@v0.10 with: command: run .melodium-ci/Compo.toml --api_token <YOUR_RUN_API_TOKEN> --output_directory logs --repository_clone_url "${{ github.repositoryUrl }}" --repository_clone_ref "${{ github.ref_name }}" --on_github true --ci_service_token "${{ github.token }}" --ci_service_project "${{ github.repository }}" --ci_service_sha "${{ github.sha }}" artifact-path: 'logs/' secrets: token: ${{ secrets.token }} Refer to melodium-windows.yml for full list of input parameters. Mac OS Runner A reusable workflow to run Mélodium on Mac OS runner is available: jobs: melodium: uses: melodium-tech/github-actions/.github/workflows/melodium-macos.yml@v0.10 with: command: run .melodium-ci/Compo.toml --api_token <YOUR_RUN_API_TOKEN> --output_directory logs --repository_clone_url "${{ github.repositoryUrl }}" --repository_clone_ref "${{ github.ref_name }}" --on_github true --ci_service_token "${{ github.token }}" --ci_service_project "${{ github.repository }}" --ci_service_sha "${{ github.sha }}" artifact-path: 'logs/' secrets: token: ${{ secrets.token }} Refer to melodium-macos.yml for full list of input parameters. Report a Status to Github To report commit statuses to Github, different methods are available. Using simpleStep In a simpleStep treatment, add the parameters as follows. simpleStep( /* … */ github=true, github_token=/* Github Token with API Access */, github_project=/* Github Project */, github_sha=/* Github SHA related to the step */ ) In CI/CD template, in main treatment: build: simpleStep[cicd=cicd]( /* … */ github=on_github, github_token=ci_service_token, github_project=ci_service_project, github_sha=ci_service_sha ) /* … */ test: simpleStepWithInput[cicd=cicd]( /* … */ github=on_github, github_token=ci_service_token, github_project=ci_service_project, github_sha=ci_service_sha ) Using postGithubState Within appropriate treatment, add the postGithubState treatment. use cicd/services/github::|success use cicd/services/github::postGithubState /* … */ treatment someStuff[cicd: CicdDispatchEngine]( // Add the following parameters github_token: string, github_project: string, github_sha: string ) // … { /* … */ postSuccess: postGithubState( name="Doing a treatment", description="Treatment accomplishing some stuff", state=|success(), project=github_project, sha=github_sha, token=github_token ) theTreatment.completed -> postSuccess.trigger } There also exists a more generic setServiceState treatment with prepared triggers for different states: use cicd/services::setServiceState /* … */ treatment someStuff[cicd: CicdDispatchEngine]( // Add the following parameters github_token: string, github_project: string, github_sha: string ) // … { /* … */ setServiceState( name="Doing a treatment", description="Treatment accomplishing some stuff", github=true, github_project=github_project, github_sha=github_sha, github_token=github_token ) Self.trigger -----------> setServiceState.pending theTreatment.completed -> setServiceState.success theTreatment.failed ----> setServiceState.failed } Setup Variables In order to use some features, such as Cadence.CI API or Github API for reporting, variables and secrets have to be set up. In Github, within Settings > Secrets and variables > Action, in the section Repository Secrets, add the corresponding tokens to make them available in workflows.Automated Migration ToolGenerate with AI