2.7 KiB
Contribution Guide
Best practices
-
Keep the image size as small as possible:
- Do not produce redundant layers in the final image.
- Cleanup temporary files and caches in the same layer were they were produced.
- Remove unnecessary man pages, examples and documentation.
-
Build each project in its separate stage:
- Do use layers granularly in non-final stages for better caching of build results.
- Prepare all the final files as much as possible in their build stage before adding them to the final stage.
CI workflow
At the moment coturn/coturn Docker image's workflow is automated via GitHub Actions in the following manner:
-
On each push the image is built and tested.
This helps to track image regressions due to changes in codebase. -
Image is built and tested automatically from
masterbranch on weekly basis.
This helps to track image regressions due to changes in parent OS images (debian,alpine), their system packages, and other dependencies. -
On each push to
masterbranch the image is published withedge-debianandedge-alpinetags.
This helps to test and try the latestmasterbranch and its changes for whoever needs this. -
On each
docker/X.Y.Z-rNtag creation the image is built using theX.Y.ZCoturn version (not the local sources), tested, and is published with all the version tags declared inMakefile(seeALL_IMAGES).
An appropriate GitHub Release for thedocker/X.Y.Z-rNGit tag is also created automatically. -
Whenever the image is published, its description on container registries is automatically updated with its README file.
Releasing
To produce a new release (version tag) of coturn/coturn Docker image, perform the following steps:
-
Upgrade the image version correctly in
Makefileby bumping up either theCOTURN_VER(if Coturn has changed it version) or theBUILD_REV(if anything else in the image has been changed). If theCOTURN_VERhas changed, theBUILD_REVmay be reset to0. -
Complete an existing CHANGELOG or fill up a new one for the new version declared in
Makefile. -
Perform a
make releasecommand inside thedocker/coturn/directory.