A CircleCI Orb to add advanced features to replace the default checkout
step.
The main use-case is to enable shallow-checkout
operations to reduce the
compute time and bandwidth related to a full repository clone.
This is accomplished by:
- limiting clone depth
- limiting fetch depth
- skipping submodule resolution (unless overridden)
- skipping LFS pointer resolution (unless overridden)
This orb is mainly ideal for repositories with large git histories as well as the execution of jobs that do not require git history or linked dependencies to peform their actions (build, and release scripts / CI operations).
- All open pull requests will build/tag as:
vsco/advanced-checkout@dev:alpha
on each commit. - All merged pull requests to
main
will build/tag as:vsco/advanced-checkout@dev:beta
Upon a successful build / CircleCI publish on main
, a release may be promoted using the following naming patterns:
- patch release: patch-release-v1.0.z
- minor release: minor-release-v1.y.0
- major release: major-release-vx.0.0
Once a tag with the correspoding name is pushed up a release flow will trigger and publish to the CircleCI Orb registry. (Note, it's necessary to distinguish between a patch, minor or major release for CircleCI purposes.)
See: config.yml#L100-L107 and orb-tools/dev-promote-prod-from-git-tag for details on how the release process works.
This Orb has code influenced from the following sources.
- The default CircleCI checkout code uncited
- guitarrapc/git-shallow-clone-orb (Shallow logic, parameterization)
See LICENSE, extrapolated from our forking of guitarrapc/git-shallow-clone-orb.