We want to use continuous deployment.
We have:
- all sources (python) in a local RhodeCode (git) server.
- Jenkins for automated testing
- SSH connections to the production systems (linux).
- a tool which can update servers in one command.
Now something like this should be implemented:
- run tests with Jenkins
- if there is a failure. Stop, mail developers
- If all tests are OK:
- deploy
We are long enough in the business to write some scripts to do this.
My questions:
How to you update the version numbers? You could increment them, you could use a timestamp ...
Since we already use Jenkins, I think we do it in a script called by Jenkins. Any reason to do it with a different (better) tool?
My fear: Jenkins becomes a central server for things which are not related to testing (deploy). I think other tools like SaltStack or Ansible should be used for this. Up to now we use Fabric (simple layer above ssh). Maybe we should switch to a central management system before starting with continuous deployment.