title: Which is the best practice of using Jenkins?
body: <ol>
  <li>Using a single server that is only contains one Jenkins building for dev, test, etc.</li>
  <li>Using separate Jenkins on each dev, test servers to build and run tests.</li>
  </ol>
  
  <p>Edit ;</p>
  
  <p>this is an explanation of step by step our deployment and release model</p>
  
  <p>Our server side developers develop and commit/push their code to github.
  CI server that Jenkins is located in poll SCM and fetch changes than build. (within CI server), run unit tests.
  After building process and deploying artifacts to repository server (artifactory server)
  Then CI server starts to deploy latest successful build into Development Server.
  then client mobile developers can develop on latest successful snapshot build of server side.
  These are our standard deployment process.</p>
  
  <p>By the way,</p>
  
  <p>We are also doing test deployment to test server via CI server with another different job on Jenkins (same CI server) but, this is handling/triggering by manual.</p>
  
  <p>Preproduction and production transitions are done by manual also. (preproduction and production are different servers of course)</p>
  
  <p>Questions;</p>
  
  <p>Integration tests should be run on test server. How can i figure it out by building system on remote CI server instead of building system on the same machine (test server) ?</p>
  
  <p>As a further step, what would the best option be to construct a Continuous Delivery system. ?
  Thanks</p>