We had a Jenkins build system, using the Groovy DSL, that worked well for us.
But then we recently hired a new developer who is supposed to be very good. He decided to rewrite the way our tests work. We are now trying to make our build process adjust to his new ideas. We have a Python app. Previously, our build system went something like this:
git pull
run tests
if good, then push to ECR
Simple.
But he pulled all the tests into a separate container. So now I need to do something like:
'docker build' the main app
'docker run' the main app
'docker build' the test app
'docker run' the test app (this fires HTTP requests at the main app)
get results from test app
shut down main app
if test results good, push to ECR
But when I call 'docker run' on the main app, it just runs forever. It's a Python web app, Django, with Gunicorn serving the web requests.
So, what do I do here? Should I spin the main app up in a separate thread, perhaps with a time to automatically kill it after a certain amount of time?