In the fight for the speeding up the coding we first disabled our developers to waste their work time managing the development environment on their workstations and invented our own unique CI/CD scheme.

S4Y CI/CD implementation is different from the others we do not have “central main CI/CD server” to handle all the company builds. Instead we launch the lightweight server on every testing/development host and avoid the huge network traffic and the build tasks queues.

It might seems to be overkill to manage many CI/CD services, but practice showed to launch CI/CD with docker-compose and grant access to few developers it 30 minutes task requiring no attention for the rest of the host life. The developers manage per-project YML files by themselves having no delays caused by extra requests to DevOp in order to make changes in the integration configs.

Another trick is to use mounted host volumes and host docker socket for caching temporary files like node_modules, .nuget and go/pkg which would take lot of time to be downloaded on every build.

And particularly for nodejs/react builds we check if the package.json has been changed from the recent build and skip the npm update if it was not.

Moreover we avoid to build and run dockers in the development environment if possible, for example the frontend static files built within nodejs container are just copied to the host’s directory served by pre-configured nginx:

Categories: DevelopmentDevOps

Leave a Reply

Your email address will not be published. Required fields are marked *