Steps

Learn the types of Pipeline steps

Codefresh pipelines are composed of a series of steps.

You can create your own pipelines by writing a codefresh.yml file that describes your pipeline. This file can then be version controlled on its own (pipeline as code).

Pipeline steps

Pipeline steps

Built-in steps

The steps offered by Codefresh are:

Git clone steps allow you to checkout code in your pipeline from any internal or external repository. Existing accounts that still use repositories instead of projects have an implicit clone step in the pipelines.

Freestyle steps are the cornerstone of Codefresh pipelines. They allow you to run any command within the context of a Docker container. A lot of Codefresh optimizations such as the shared docker volume are designed specifically for freestyle steps. Freestyle steps are a secure replacement for docker run commands.

Build steps are the main way where you get access to the Docker daemon (Docker as a service) in Codefresh pipelines. Build steps take as input any Dockerfile and run it on the cloud in a similar manner to what you do on your workstation. Build steps automatically push the result to the internal Docker registry (no need for docker login commands). Codefresh also comes with a global Docker cache that automatically gets attached to all build nodes. Build steps are a secure replacement for docker build commands.

Push steps allow you to push and tag your docker images (created by the build step) in any external Docker registry. Push steps are not needed at all if you work with only the internal Codefresh registry. Push steps are a secure replacement for the docker tag and docker push commands.

Composition steps allow you to run multiple services together in the Codefresh infrastructure and execute unit tests or other commands against them. They are discarded once a pipeline finishes. Composition steps are a secure replacement for docker-compose definitions.

Launch test environment steps behave similar to compositions, but they persist after the pipeline ends. This is a great way to create preview environment from your pull requests and send to colleagues.

Deploy steps allow to perform Kubernetes deployments in a declarative manner. They embody the Continuous Deployment aspect of Codefresh.

Approval steps allow you to pause pipelines, and wait for human intervention before resuming. They allow you to embrace the concepts of Continuous Delivery.

Note that Codefresh also supports parallel workflows as well as running pipelines locally on your workstation.

Step directory

In the case of freestyle steps we also offer a plugin marketplace with several existing plugins for popular integrations.

Codefresh steps directory

Codefresh steps directory