Create docker images needed in pipelines and publish them in Docker Hub.
Every subfolder of the root project is a module that will generate X Docker images in DockerHub
Following the Semantic Versioning. We have two options:
- Create a version of the entire project / Tag the 'entire' project
- Create a version of a module / Tag 'only' a 'module'
Once a TAG is pushed, a GitHub action is executed if the tag matches a regular expression:
- "v[0-9]+.[0-9]+.[0-9]+" ==> this will PUBLISH a new Docker image for all modules.
- "v[0-9]+.[0-9]+.[0-9]+-moduleName.*" ==> this will PUBLISH a new Docker image for the "moduleName".
Examples:
- v1.0.0 ==> this will PUBLISH a new Docker image for all modules, with the tags: [v1.0.0, latest]
- v1.0.0-python.1 ==> this will PUBLISH a new Docker image for "python" module, with the tags: [v1.0.0-python.1, latest]
See https://github.com/opendevstack/ods-docker-images/blob/main/.github/workflows/ci-acala.yml as an example of the CI
A PR pipeline (check) will only test the modules with changed files (test = build local docker images)