At TekCapitol we believe DevOps as a culture/environment where there is an agile relationship between operations and development team. Thereby, setting up better and frictionless collaboration and communication amongst the two business units to rapidly deliver effective, reliable and quality solutions.
"It works on my machine!". . . . . How many times did you hear this sentence?Whenever we hear it, it is clear to us, that project has no Continuous Integration implemented. It is built and tested manually (at best) and it is always a bad idea. Continuous integration is a very powerful practice used during software development. And helps save tons of money. Bugs caught early cost ten times less, compared to the bugs spotted at production. Jenkins is considered one of the best DevOps tools, which maximizes the chance to produce bug free software, which results in high quality software. It allows to quickly take the code, build it (step omitted in case of python packages, which usually do not require compilation step) on a frequent schedule and deploy into a designated, representative environment for testing. Without the ability to automate code deployment, you are left with an enormous piece of manual, repetitive tasks in deployment pipeline:
This is a typical pipeline in most IT projects. Jenkins can help to automate this work. And not only automate, but to establish a common baseline for all developers working in the project. What is the baseline? It is entire projects configuration and dependencies i.e. third party packages used in computation, environmental variables and other settings characteristic for the project. Also, Jenkins is free and has over 1000 plugins, created by an active community, which extend its functionality in every possible way. Plugins provide tools for many languages and functionalities developers around the world add for a few decades now.
Creating test environment:
Running static code metrics:
Testing pulled source code:
Building proper python distribution package (.whl)
Deploying to PyPI