+ Start a Discussion
vijay m 4vijay m 4 

Continuous integration mechanism


Can someone suggets me the best continous integration tool for to enhnace my development and deployment process or suggest me the best methodologies or available tools


Glad you asked. This is a passion of mine. Here's some notes on how I do it.
  • Imagine your CI solution as being built out of two components:
    • CI Transport
    • CI engine
  • Your CI transport is the mechanism by which code is both preserved in the VCS and how it's moved from one org to another.
    • I use Git and Github / Bitbucket for VCS and storage
    • I use the ANT toolkit to transport data to various ORGs
  • Your CI Decision engine tool can be any of a number of CI tools like:
    • Jenkins
    • Bamboo
    • Drone.io
  • I use a combination of Drone.io, Git, Github and The Ant Toolkit for my CI solutions. Here's the workflow:
CI Flow
(Image by PCON (https://developer.salesforce.com/forums/ForumsProfile?userId=005F0000003Fg0aIAC&communityId=09aF00000004HMGIA2" target="_blank), whom I built this general deck / idea with )

Some essentials:
  • Every developer has their own sandbox / developer org in which they work.
  • Work only progresses from one org to another after git push to Github.
  • Each developer has their own github fork of the project
  • Each developer follows the same branching and merging convention (I recommend Gitflow) (http://A successful Git branching model » nvie.com" target="_blank)
Once a developer has completed a feature and pused the feature branch to their own fork.
- Here the tests are run in the developers own org by the engine because the commit was pushed. IF the tests pass a pull request is created.
Development team uses standard github pull request flow for code review.
On acceptance of the pull request
- The tests are run in the qa org by the CI Engine. IF the tests pass: emails go out to other team members requesting they pull down the changes to their own branches.
- IF the tests fail, the pull request is backed out.

vijay m 4vijay m 4
Hi Kevin

Thanks for your clear reply and clartiy on CI Engine and CI transport. Our development IDE is force.com(Eclipse) and would like to use Git/Subversion for VCS and I dont want to push it to GitHub/Bitbucket. I would like to use Jenkins as CI engine.

The above is my preference and If you detail me little more about below points will be great

1. Could you please detail more about ANT migration tool functionality in your workflow?

2. Is there any tool to push back from jenkins to SFDC ?

Thanks & Regards

vijay m 4vijay m 4
Hi Kevin

Finally I am done with all integration, I have a final question do I have to have maintain separate code for each customer or shall I simply branch out?. If I branch out how can I tag branch code to build.xml file