logoalt Hacker News

spockztoday at 10:12 AM0 repliesview on HN

It is rare for our run of the mill Java apps to however, we notice it with:

Integration of code quality gates, documentation checks, linting, cross architecture builds, etc.

Most of this can be solved by doing the builds in a docker image that we also maintain ourselves. Then what remains is the interaction between the ci config for matrices, the tasks/actions to report back quality metrics, the integration with keyvaults to obtain deploy time secrets, etc.

Then there are the soft failures, missing a cache key causing many packages to be downloaded over and over again, or the same for the docker base images, etc.

We fix this for our 1000+ microservices, across hundreds of teams by maintaining a template that all services are mandated to use. It removes whole classes of errors and introduces whatever shenanigans we introduce. But it works for us.

If GHA, Azure Pipelines, etc., would provide a way of running builds locally that would speed up our development greatly.

Until then we have created linting based on CUE to parse the various yamls, resolving references to keystores, key ids, templates, etc., and making sure they exist. I think this is generic enough to open source even.