Freestyle, multibranch and Pipeline jobs, declarative or scripted, and the shared libraries behind them. CodeCargo groups similar jobs into families and converts each family once, onto reusable workflows your platform team owns.
Runs in the app, with our team on call@Library('corp-pipelines') _
cdAnsibleBuild(
appName: 'facturacion',
inventory: 'inventories/pro/hosts',
branch: "${env.BRANCH_NAME}"
)name: deploy
on:
push:
branches: [main]
jobs:
deploy:
uses: acme/corp-pipelines/.github/workflows/cd-ansible-build.yml@v3
with:
app-name: facturacion
inventory: inventories/pro/hosts
secrets: inheritTrusted by teams moving to GitHub at scale
What moves
Freestyle, matrix, multibranch, Pipeline from SCM and inline Pipeline jobs.
Both are converted; scripted control flow is restructured, not copied line by line.
Each library function becomes a reusable workflow that many repositories call.
Organization folders and multibranch jobs are resolved to the repositories they build.
Credential definitions are inventoried and mapped to GitHub secrets. Values are never extracted.
Every plugin in use is listed and mapped to an action, a building block or a secret.
How it maps
Plugins without a match map to your own building blocks, so every team lands on the same steps.
| Jenkins | GitHub Actions |
|---|---|
| agent { docker { image 'node:20' } } | container: node:20 |
| tools { maven 'M3' } | actions/setup-java + actions/cache |
| archiveArtifacts | actions/upload-artifact |
| junit | dorny/test-reporter |
| withCredentials | ${{ secrets.NAME }} |
| parameters { string(...) } | workflow_dispatch.inputs |
| triggers { cron('H 2 * * *') } | on: schedule |
| post { failure { ... } } | if: failure() |
| input (approval) | Environment with required reviewers |
| @Library('corp-pipelines') | uses: corp-pipelines/.github/workflows/… |
The parts that need a person are named in the plan up front, so they are decided before cutover, not discovered during it.
Your migration, your way
Self-serve
The whole program in one app: inventory, families, waves of pull requests and cutover. Built for platform teams who want to drive.
With our migration team
We scope, plan and run the move alongside your team, on the same platform, for the estates and deadlines that can't slip.
After the move
CodeCargo Manage keeps every repository on the standards and building blocks you migrated onto, fixing drift as pull requests, as far on its own as you allow.
Don't see yours? Our migration team will walk through your Jenkins estate with you.
Yes. Declarative and scripted pipelines are both converted. Scripted control flow such as try and catch is restructured into GitHub Actions conditions and steps rather than copied line by line.
Each shared-library function becomes a reusable workflow. The jobs that called the library then call that workflow, so a change in one place reaches every repository.
No. Credential definitions are inventoried and mapped to GitHub secrets, but values are never extracted from Jenkins. They are entered in GitHub once.
Every plugin in use is listed during import and mapped to an action, one of your building blocks, or a secret. Plugins with no equivalent are flagged in the plan before anything converts.