Description
Currently, new layers are built by triggering jobs in ./circleci/config.yml
. After running tests, the CI jobs execute jobs defined in the project Makefile
, which triggers build jobs in each language's publish-layers.sh
file...which also references the top-level libBuild.sh
for code-sharing.
There's a lot of repetition and boilerplate, and adding new runtimes requires updating all of the above files, as well as (for Node and Java) adding a Dockerfile for the new runtime in the dockerfiles
directory.
Ideally, the process of adding a new version of a single runtime should involve just adding a new element to an array that these scripts can use to iterate, rather than copying and pasting boilerplate.
Update:
Publishing operations for Node and Java layers currently use the repo's Makefile
and Docker images. The Python layers do not: instead, they include a step to install the awscli
(using pip
) and publish directly from the CI job. I'd recommend that we repeat this pattern for Node and Java, dispensing with the Makefile and Dockerfiles, reducing the number of updates needed when a new runtime is released.