Pipeline's CI/CD system allows you to automate the execution of jobs on your clusters based on commits to a Git repository. This system is at the core of our Spotguides. Spotguides also generate a starting configuration, based on the best practices of a given environment.

This document will briefly explain the process of activating and configuring a continuous delivery pipeline.

Activation

To activate your project, navigate to your account settings. You'll see a list of repositories which can be activated with a simple toggle. When you activate your repository, Pipeline's CI/CD will automatically add webhooks to your version control system (e.g. GitHub).

Webhooks are used to trigger pipeline executions. When you push code to your repository, or open a pull request, or create a tag, your version control system will automatically send a webhook to the Pipeline CI/CD, which will, in turn, trigger a pipeline execution.

repository list

Configuration

To configure your pipeline, you should place a .banzaicloud/pipeline.yaml file in the root of your repository. The .banzaicloud/pipeline.yaml file is what's used to define your pipeline steps. It's a superset of the widely used docker-compose file format.

Here's an example pipeline configuration:

cluster:
  name: my-cluster

pipeline:
  build:
    image: golang
    commands:
      - go get
      - go build
      - go test

services:
  postgres:
    image: postgres:9.4.5
    ports: [5432]
    environment:
      - POSTGRES_USER=myapp

And here's a pipeline configuration with multiple, serial steps:

cluster:
  name: my-cluster

pipeline:
  backend:
    image: golang
    commands:
      - go get
      - go build
      - go test

  frontend:
    image: node:6
    commands:
      - npm install
      - npm test

  notify:
    image: plugins/slack
    channel: developers
    username: banzai

Execution

To trigger your first pipeline execution you can push code to your repository, open a pull request, or push a tag. Any of these events triggers a webhook from your version control system and executes your pipeline.

You can view your pipeline execution in real-time in the user interface.

running build