Skip to content

Latest commit

 

History

History
43 lines (24 loc) · 2.14 KB

CONTRIBUTING.md

File metadata and controls

43 lines (24 loc) · 2.14 KB

Contributing

So you want to contribute to the NodeSource Docker Images, thats great!

We appreciate any and all feedback. This document will serve as a guide to preparing, building, and testing these images before submitting a PR against this repo.

Dependencies

TL;DR

These images are built from templates located in /templates.

The templates are populated according to the file templates/images.js, which is automatically generated by tools/gen-images.sh.

Once built, the images are tested by running dante test.

Running Tests

Every Dockerfile generated by this repo must be tested. In order to accomplish this, we generate a file inventory.yml which is consumed by the testing framework dante. These tests are automatically run at the end of ./tools/build.sh. If you would like to run them manually, execute the following:

dante test

Note: These images have interdependencies during the build process. Although dante supports parallel builds, this repo will not build properly if you use the parallel flag. As for right now, build the images serially.

Getting Acclimated to the Code Base

An early decision of this project was to separate tasks into individual scripts that can be run independently of one another. This resulted in the tools directoy becoming quite daunting. Luckily, everything is strung together by a single script, build.sh.

tools/build.sh

This file stitches together all of the scripts necessary to generate and test these images. This is a good place to start reading if you are interested in learning how these images are created, or if you are interested in modifying the build process.

Submitting a PR

If you are interested in submitting a PR against this repo, please do the following:

  1. Run ./tools/build.sh
  2. Retrieve all logs created from ./logs/[date]/*.md. Create gists for each log and link to them from the PR.
  3. Delete the logs directory (logs should only be checked in for builds that push the the public repo)