Closed anskarl closed 4 years ago
I think this is useful for the robustness of our build and control of our supply chain. On the downside, it makes it a bit more work to update our dependencies, but I think it's a net positive.
I would prefer to use the GitHub Package Registry because it's one fewer third-party.
In https://github.com/anskarl/scruid/commit/7566fe6f2098b31859f57f9ceb22273bb143371e I've added GitHub Actions workflow for building the project similar to the current implementation that uses CircleCI, but the main difference is that it can also build Docker images for all the required external services (e.g., Druid) and pushed to GitHub Package Registry.
As it is also included in the commit message, the changes are outlined below:
With GitHub Actions, the build flow can be handled without CircleCI and it is well integrated with GitHub Package Registry.
Please note that the images in docker-compose in https://github.com/anskarl/scruid/commit/7566fe6f2098b31859f57f9ceb22273bb143371e are pointing to GitHub Package Registry, therefore the automated tests in CircleCI are failing.
@anskarl this one can be closed right?
Yes, I will close it.
I am thinking that it may be practical to include as part of the project all Dockerfiles of images that are used in tests and additionally push all of them under a common namespace in Docker Hub (e.g., scruid/druid-docker, scruid/openresty and scruid/clusterf-chaos-proxy) or in GitHub Package Registry (beta) (tagged as docker.pkg.github.com/ing-bank/scruid/IMAGE_NAME:VERSION).
Dockerfiles will be part the project, will evolve with the project and publishing of the images can become a part of the CI process. Furthermore, when a new feature requires changes to some image (e.g., new version of Druid or some extension) the required change in the Dockerfile can be part of the corresponding PR.
A POC of such change can be found in https://github.com/anskarl/scruid/commit/1917a99df73d6bb7fbea525c0a408d5837093e38 in which:
docker.pkg.github.com/anskarl/scruid/
namespace (should change todocker.pkg.github.com/ing-bank/scruid/
)./services.sh start
and some image is not available, it will try to build the image locallyWhat is missing for the POC:
What do you think? Do you find any benefits of making such an addition to the project?