Developing on the SalesForce platform is amazing not only for solving Business Processes, but also just about anything else you could want. The only limits are your imagination and developer bandwidth! But creating a product as a Managed Package for the AppExchange or an OEM Force.com Embedded product? Well, that requires a more advanced approach for team-based development. When making a Managed Package, you should be working in a Partner Developer Edition (PDE) Org, which typically doesn't have sandboxes. There's a way to enable sandboxes and se tup Continuous Integration using Git, Jenkins, and Force.com which has been pioneered by NimbleAMS team members Derek Hansen and Ted Husted. You can check that out here.
Building on top of their approach, what you may not know is the new technique whereby converting a PDE into a TSO (Trialforce Source Org) gives you a way to clone Dev Orgs with both CONFIG and DATA (sorry, no licenses) using TF Templates. In just minutes, you can set up a feature branch flow in record time. Combine that with Github, and CircleCI (Cloud hosted Continuous Integration platform), and we have a super easy, super fast recipe to share with your team. It goes along with the "No Software" approach of Salesforce development and does not require you to host or manage your own Jenkins server. I've prepared this short video to show you our new approach which we'll be sharing more about at Dreamforce 2014.
In this video, we'll show you how to se tup a continuous integration flow of a development feature branch using all cloud-based tools. Using cloud tools like Github, CircleCi, and Salesforce metadata API with Ant, you can have Salesforce Continuous Integration, the easy way! Maybe you've already seen CI using Jenkins with sandboxes and found it difficult to get se tup. Using a new technique by converting a Partner DE Org (PDE) into a TSO, we're able to clone Dev Orgs with TF Templates in just minutes and set up a feature branch flow very quickly.
Step 1: Fork the example repo https://github.com/maestrocoder/ci-df14-warehouse
Step 2: Make a new dev PDE org using the HTML signup form.
In the repo under the root /html-signup/ folder, an HTML form called pdetso-ci-df14-warehoure.html
Step 3: Wait for the email and set your password Click on the link in the email and continue with setting up the password and security question
Step 4: Update the username, email, and reset your security token
Set the username and email to contain the name of your dev branch
Step 5: Create a dev.branch in git Connect to github to create a branch from the sprint.1 branch
Step 6: Create dev.branch.properties for CircleCI and ant Build
Copy the build.qa.properties to build.dev.branch1.properties, and then edit the username and password
Step 7: Commit and push the branch to remote
Go back to atlassian sourcetree and stage the Uncommitted changes to the build properties file. Press Control-Shift-C to commit, provide a comment and press the commit button. Afterward, press the push button in the toolbar and check the dev.branch checkbox, then click OK to push your new branch to the remote.
Step 8: Jump over to CircleCI quickly and watch the build run
We've already connected circleci to our github project and we're following our repo with circleci. Notice circleci already picked up the commit in seconds and runs the Deploy and Run All Tests for our code into the Salesforce Org credentials we provided in the dev.branch.properties. Check it out and give it a try! Hope you enjoy! Also, don't forget to check out this session at Dreamforce! Click here to view our event landing page and register for a session!