ci for force dot com

Post on 11-Apr-2017

276 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Continuous Integration for Force.com Projects

Don McIntosh@donmac23

Continuous Integration

Automating software build and release processes with built in quality control

Change Sets

Sandbox Flow for Small Teams

Deployment via Changesets

Dev Dev

QA

UAT

Prod

Dev Dev

Do I Need Better CI?

• IF you:– find it hard to manage changed components– have devs overwriting each other’s code– find collaboration between developers difficult– want earlier/more frequent integration between

devs’ work– want a more detailed change history

• OR:– are working in independent dev orgs

Benefits

• Supports Agile process well• Scales to large teams• Detailed, auditable version history• Flexible version control• Easy(ish) to set up new Orgs• Works on any set of Orgs, not just related

sandboxes + prod

What Do I Need?

• CI Tool (Jenkins, Bamboo, Teamcity…)• Server for CI (or find a hosted service)• SCM (Git, SVN…)• Ant + Force.com Migration Tool• Shared list for manual changes• Development process• Package.xml contents

DevDev

Dev

CI

Test

UAT

Prod

Release ManagementMaster (prod) Develop (CI) QA UAT

Tim

e

Basic CI with Jenkins

• Automated checks run on each change to source code (and/or config)

• Prominent success/failure notification• Easy deployment to multiple Orgs• Build statistics• Build history and status for each Org• Demo…

Multiple update scenario

• Fred:– Deletes field “Segment” from Account and

replaces it with standard field “Industry” on Account page layout “Food Service Corporate Accounts”

• Don:– Adding the field “SIC Description” to the same

page layout

Salesforce Challenges & Solutions

• Reconciling profile changes• Preventing regression back to obsolete config

Useful Improvements

• Automated code analysis (eg: Village Chief’s Codescan)

• System tests• Refresh sample records in test Orgs • Reports (eg: metadata summaries)• Direct integration with issue tracking software

A Few Tips

• Pull often, not just when you are about to push

• Refresh from prod to bypass manual steps• Expect some road bumps, especially early on• Build light is genuinely useful• Use a physical token for committing changes• Pay some attention to keeping unit tests fast

Thanks!

top related