I am working on a web project with 7 developers. I setup a beta box (debian) so that we can do testing of new code before passing it to staging.
On the beta box, I setup Jenkins and would like to automate the merge/testing process. We also have a test suite which I would like to tie-in somehow.
How should I test and run python web projects with SVN / Jenkins?
I’m trying to formulate a good workflow. Right now each developer works on a feature branch, I run the code in the branch, if it looks good we merge it.
I would love to have developers login to the beta jenkins, and tell it to build from their feature branch. Here is my plan for what Jenkins would do:
- Make sure the feature branch is rebased from trunk
- Make sure the beta branch is identical to trunk (overwriting any merged-in feature branches)
- Merge the feature branch into the beta branch
- Kill the running server
- Start the server
nohup python app.py & - Run the test suite
python test.py - Output the test data to the developer’s view in Jenkins
- If any of the tests fail, revert to the state before the branch was merged
I’m not sure how to handle merge conflicts. Also, the above is probably bad and wrong. Any advice would be appreciated!
The question is a bit too big to be answered in a simple post, I will therefore try to give a few hints and references as far as I see from my personal view:
A few quick tips:
Here some books that I found useful in this area:
Let me know via comments what additional content you would like to have.