The README below is fetched from the published project artifact. Some relative links may be broken.

lambdacd-mongodb

If you use LambdaCD in an environment without persistence you certainly noticed that the build history is lost after restarting LambdaCD. lambdacd-mongodb stores the state of your pipeline in a MongoDB and it restores it at the next startup.

Nice to know

Only builds with at least two active steps are stored because you don’t need builds waiting for a trigger

Tested with LambdaCD version 0.11.0

String keys in the global map starting with the prefix “:” will be restored as keyword and not as string

Example

Start your local MongoDB daemon (default port: 27017)

Run lein run

Let the pipeline run for a few times

Stop LambdaCD by pressing strg-c in your terminal

Restart LambdaCD by running lein run again

The build history should still be there

Configuration

To use lambdacd-mongodb you have to create a map containing your MongoDB configuration.

The :col key specifies the collection which is used to store all builds from one pipeline. Do not use a collection for more than one pipeline!

The :max-builds key is optional (default: 20) and definies how many inactive builds are restored.

The :ttl key is optional (default: 7) and definies how many days the builds should be stored

The :mark-running-steps-as is optional (default: :killed). If you set it to :failure all running steps will be marked with the status :failure. If you set to :success, running steps will me marked as :success. Please be advised that configurating something other than :success, :failure or :killed will leave your pipeline in an undefined state.

The :persist-the-output-of-running-steps is optional (default: false). If you set it to true the state of the pipeline will be persisted if the output of any step is changed (-> many write operations). If you set it to false the state of the pipeline will only be persisted if the status of any step is changed (-> fewer write operations).

The :hosts key specifies the hosts of the MongoDB. The key is mandatory to form a URI.

The :user, :password and :port keys are optional. If you set them, they will be used to augment the URI.

The :uri key specifies the URI of the MongoDB. This key is considered deprecated and will only be used as a fallback if the :hosts key is not specified

Add the mongodb configuration map to the main configuration by using the key name :mongodb-cfg