Skip to content
This repository has been archived by the owner on Mar 22, 2024. It is now read-only.

ITV/chuckwagon

Repository files navigation

DEPRECATED

Chuckwagon no longer actually works. For scala lambda deployments another option is Conan.

Join the chat at https://gitter.im/itv/chuckwagon

Chuckwagon

Chuckwagon is a Scala/sbt AWS Lambda Toolkit. It makes creating and maintaining Continuous Delivery pipelines typesafe and declarative.

Complete introductory guides and reference documentation available on the website,

http://io.itv.com/chuckwagon/

Installation

Add the following to your project/plugins.sbt file:

addSbtPlugin("com.itv.chuckwagon" % "sbt-chuckwagon" % "0.1.0")

Here is an example of the most basic possible configuration in your build.sbt:

enablePlugins(ChuckwagonPublishPlugin)
chuckRegion := "<AN_AWS_REGION_EG_-_eu-west-1>"
chuckPublishConfig := chuckPublishConfigBuilder
  .withName("<THE_NAME_YOU_WANT_FOR_YOUR_LAMBDA>")  
  .withHandler("<FULLY_QUALIFIED_CLASS::METHOD>")
  .withMemorySizeInMB(192)
  .withTimeout("5 seconds")
  .withStagingBucketName("<THE_S3_BUCKET_WHERE_CHUCKWAGON_WILL_UPLOAD_YOUR_CODE")
  .withCodeFile(assembly)

In order to execute Chuckwagon Tasks with this configuration, you will need AWS Credentials with read and write access to EC2, IAM and Lambda. The Getting Started Guide has more details on one way of configuring this.

Usage

Here is an example of the most basic possible usage of Chuckwagon:

chuckPublishSnapshot - Will create/update your AWS Lambda

Features

Documentation

Complete documentation is available on the Chuckwagon website:

http://io.itv.com/chuckwagon/

Licence

Chuckwagon is free to use under the ITV OSS Licence (a derivative of the Apache License, Version 2.0).