Public | Automated Build

Last pushed: 13 days ago
Short Description
Short description is empty for this repo.
Full Description


Couchlock those running pipelines!

What is this?

This is currently the way we are trying to get global locks into our CD pipelines. Historically tried different Jenkins plugins for mutexes/semaphores and hacks by using jobs as locks.

Lock that shared resource!

  • Build machine
  • Build only one image for specific githash of docker image (at the same time)
  • Postgres server
  • Staging system
  • Single Arduino board hooked up to Jenkins
docker run -it --rm tomologic/couchlock \
    --couchdb "" \
    --lock shared_resource \
    --name $BUILD_TAG \ # Unique identifier, example Jenkins $BUILD_TAG

## Do crazy things with shared resource

docker run -it --rm tomologic/couchlock \
    --couchdb "" \
    --lock shared_resource \
    --name $BUILD_TAG \ # Unique identifier, example Jenkins $BUILD_TAG

Couchlock is provided through our homebrew tap for OSX and linux users.

brew install tomologic/tap/couchlock


Travis CI Gimme is used to cross-compile couchlock.

$ brew install gimme
$ make build
$ make build_darwin
$ make build_linux


Effing Package Management - fpm is used for packaging.

$ brew install gnu-tar
$ brew install rpm
$ gem install fpm
$ make package
$ make package_deb
$ make package_rpm


If you don't have couchdb internally then totally try this out with Cloudant which has a great free tier.


Generate bindata

All files in data directory is packed with go-bindata.

go get -u
go-bindata data/...
Docker Pull Command
Source Repository

Comments (0)