Skip to content

Reduce boilerplate for build and publish scripts #191

Open
@mrickard

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.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions