Change the way you do CI/CD with Workflows

Wercker is a Docker-Native CI/CD Automation platform for Kubernetes & Microservice Deployments

Victoria Domalik
Victoria Domalik
December 28, 2016

An effective CI/CD system gives your development team more precision, control and –lest we forget– efficiency by giving them automatic and fast feedback on their changes and by providing a stage on which your whole team (or multiple teams within an organisation) can automate everyday operations like merges and deploys. 

Workflows, is an important step toward solving the key automation challenges in CI/CD when deploying to cloud native architectures consisting of container registries (like Docker Hub) and schedulers (like Kubernetes).

 

20161103_WW_Integrations.png

Workflows provide you with a mechanism to manage your pipelines. With Workflows, you can connect your Pipelines in series and parallel to form complex, end-to-end CI/CD flows.

With Workflows developers can define a hook to trigger a pipeline to be executed in a Docker container. The hook can be defined as either a Git source (a push from a GitHub or Bitbucket repository) or, from another pipeline. A Git source can trigger one or multiple pipelines.

Pipelines, in turn, can trigger other pipelines, allowing users to chain pipelines sequentially or in parallel. This enables the developer to express complex automation scenarios which are often needed in shipping your containers from development to production.

 

Get started with Workflows 

 

Workflows and all the pipelines you need

Workflows allow you to manage your pipelines. You will no longer be limited to builds and deploys executed in a sequential fashion. Instead, you will be able to define any kind of pipeline in your wercker.yml.

# this box will be used if not overidden in the pipeline
 box: busybox

 build-base:
   steps:
     - install-packages:
       packages: bzip2

 build-dev:
   # override the box
   box: node
   steps:
     - script
       name: set env
       code: export NODE_ENV=dev

 push-dev:
   box: node
   steps:
     - internal/docker-push:
       (...)

After you’ve created your wercker.yml with all the pipelines you need and the steps they need to execute, you’re able to define the counterparts in the wercker web UI, and specify on what hook they should run.

wercker pipelines

Types of hooks: Git and Workflow

Git-type hooks

Git-type hooks get triggered when a code change is detected on a certain branch. They are best compared to your traditional build pipelines, the difference being, you can now execute multiple pipelines for one commit.

Workflow-type hooks

Workflow-type hooks are best compared to traditional deploys, as they listen for other pipelines to successfully complete in order to be executed. This allows for multiple pipelines to be chained together, allowing to create your own unique developer workflow.

create new pipeline wercker

Finally, using the visual editor you can create your workflows and chain your different pipeline together.

wercker workflows

Step Creation

Creating and deploying steps is now done through the ‘Step Wizard.’ You can find it under the 'Create’ dropdown in the top menu bar.

So there you have it, Workflows for the unitiated, you can find the all the relevant documentation here


Get started with Workflows 

 

Like Wercker?

We’re hiring! Check out the careers page for open positions in Amsterdam, London and San Francisco.

As usual, if you want to stay in the loop follow us on twitter @wercker or hop on our public slack channel. If it’s your first time using Wercker, be sure to tweet out your #greenbuilds, and we’ll send you some swag!

 

Topics: Kubernetes, Containers