Manage complex CI/CD automation scenarios with Workflows

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

Micha Hernandez van Leuffen
Micha Hernandez van Leuffen
May 19, 2016

We’re excited to announce the launch of Wercker Workflows, an important step toward solving the key automation challenges in CI/CD when deploying to cloud native architectures consisting of container registries and schedulers.

 

With Wercker Workflows developers 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, for the first time, 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 developer to express complex automation scenarios which are often needed in shipping your containers from development to production.

wercker to scheduler

Watch the introductory video here.

In order to give a richer overview of the different workflows that could occur, such as fanout pipelines, we launched a brand new UI.

wercker UI

From a practical standpoint, Wercker Workflows not only comes with an interface update but also some new terminology to get used to on the application dashboard. We’ll walk you through what you need to know in this post, and you can find the updated documentation here.

Workflows and all the pipelines you need

Workflows allow you to manage your pipelines. You will no longer be limited tobuilds 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 formultiple 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.

Our Partners

With the introduction of Workflows, we’ve added support for all registries with v2 of the Docker Registry API, including Amazon ECR. Designed to fit any modern cloud development pipeline, Workflows works great with AWS, CoreOS, Deis, Kubernetes, Mesosphere and more. For details and tutorials, please visit our partner pages:

  • Workflows + Amazon EC2 or ECS
  • Workflows + CoreOS
  • Workflows + Kubernetes
  • Workflows + Mesosphere
  • Workflows + Deis

FAQ

When will I get Workflows? Existing applications will be migrated to the Workflows stack over the course of the next few weeks. Deploy targets have been converted into Workflows, so your deploys will still work!

New applications that you create will automatically have a “build Workflow” interface, so you can use any wercker.yml that includes a build pipeline from the get-go.

How can I get Workflows now? If you’d like your existing application fast-tracked for the Workflows update, go to your application and click the Workflows link with the settings of your app. There’s a link to fast-track your migration. Note that you shouldn’t do this for mission critical apps yet.

Where can I find documentation? The docs has a new section “workflows” which goes into detail how to create and manage your Workflows. We will be releasing tutorials and screencasts to showcase some more advanced use-cases.

Will the Desktop application still work? Unfortunately, no. We’re going to stop actively supporting the desktop app and will be releasing the source on GitHub soon.

Feedback

We welcome your thoughts and feedback as we continually strive to make Wercker the best platform to automate development for the modern cloud. Please join the conversation on Slack and tell us how you’re using Workflows.

Interested in joining the team? Check out our open position in San Francisco, London and Amsterdam.

 

Topics: Product, Kubernetes, Tutorials