At Stark & Wayne we're still enjoying and expanding our use of Concourse for build/test/release pipelines and deployment promotion pipelines. For one, the dashboard looks awesome:

dashboard

Whilst the dashboard is great, it is only useful if people are looking at it. If a job fails and no one saw it, did it actually fail?

So we wanted our pipelines to be a little chatty - to send us different messages if important steps succeed or fail:

release

The above message came after the shipit job succeeded in cutting a new release.

Sometimes jobs fail and we want to know about it:

fail

Integrating Concourse with Slack

In the examples above we're using Slack. For another client we're using Flowdock and will writeup that integration soon.

Thanks to Kamil Burzynski @Nopik for creating a slack-notification-resource and getting us started.

Next we packaged the resource as a Docker image on Docker Hub [link] and as an embedded BOSH release
https://github.com/cloudfoundry-community/slack-notification-resource-boshrelease

Note: at the time of writing, we're managing a downstream fork of the resource repo https://github.com/cloudfoundry-community/slack-notification-resource with some extra features awaiting merging upstream. The Docker image and BOSH release include these new features.

We have this running within http://ci.starkandwayne.com:8080 as well as our clients' Concourse installations.

Usage

It seems to work really nicely.

There are two main uses:

  • a static message that's the same every time (baked into the pipeline.yml)
  • a dynamic message that is prepared by a previous step

Simple pipeline example

There are some example pipelines to show the basic usage at https://github.com/cloudfoundry-community/slack-notification-resource-boshrelease/tree/master/examples

Additionally, our rdpg-boshrelease pipeline has additional examples https://github.com/starkandwayne/rdpg-boshrelease/blob/master/ci/pipeline.yml