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).
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.
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.
Types of hooks: Git and Workflow
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 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.
Finally, using the visual editor you can create your workflows and chain your different pipeline together.
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.
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!