master your metadata

Post on 08-Aug-2015

51 Views

Category:

Software

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Brought to you by Atlassian’s Salesforce Development Team

Master your metadataBest practices for versioning, CI and

deployments

Tim PettersenDev Tools Dude

@kannonboy

Dan JohnsonSalesforce Superguy

@dapperdanj

Clobbered Changes

Photo: NASA

Deployment Failures

Rollbacks?

Clicks versus Code

AdministratorYour dev sandboxes

ProductionUATShared Dev Sandbox

Individual Dev

Sandboxes

ProductionUATShared Dev Sandbox

JIRA-456

JIRA-123

Linear workflow

feature/JIRA-123

stable master branch

isolated feature work

master

Branching workflow

per

Branch all the things

Branch featurebuglabel change

It starts in …

ProductionUATDeveloper Sandbox

• Developers work in isolation on their branch until the feature is code complete

• Quality is ensured by peer review and acceptance testing

• Changes are promoted in a controlled manner through UAT to Production

ProductionUATDeveloper Sandbox

• Bamboo is running tests on feature branches before they’re merged..

• …AND every stable master branch!

• Bamboo also performs the deployments for you, (and it only deploys a commit that’s already passed the tests)

Touch button deploy

ProductionUATDeveloper Sandbox

ProductionUATDeveloper Sandbox

Fork Synching

Back to …

Automatic Issue Transitions

feature branch

master

IN REVIEW RELEASEDIN PROGRESSOPEN

Branch created!Pull Request Created!Pull Request Merged!

Destructive Changes Plan

Developer Sandbox

Individual Developer Sandboxes

Shared Developer Sandbox UAT Production

<Package> … </Package>

destructiveChanges.xml

destroy/JIRA-123

+<?xml version="1.0" encoding="UTF-8"?> +<CustomApplication xmlns="http://soap.sforce.com/2006/04/data"> + <defaultLandingTab>et4ae5__ETarget</defaultLandingTab> + <label>ExactTarget</label> + <tab>et4ae5__ExactTargetPhoenix</tab> + <tab>et4ae5__SMSDefinition__c</tab> + <tab>et4ae5__SendDefinition__c</tab> + <tab>et4ae5__Send_Analytics</tab> +</CustomApplication>

$ git diff a9d5e28

Production

924b427 BIZPLAT-139622 Update scheduler to run hourly. 885b5a7 BIZPLAT-119245 Only select active pricebook entries. d1458bf BIZPLAT-137572 Remove FeedItem. 06f84f6 BIZPLAT-137572 Remove useralt layout. 8b85a56 BIZPLAT-134770 Add "Email Opt In” to Lead layouts. d7f4b3e BIZPLAT-135248 AccountDomain layout. a411da1 BIZPLAT-134770 User layout additions. a9d5e28 BIZPLAT-129169 Account Domain object tab 1bd3cb2 BIZPLAT-129169 Trigger handler fixes. 7499d43 BIZPLAT-129169 Country is no longer required.

$ git log --author=mwright --before=“last wednesday”

<Package> … </Package>

destructiveChanges.xml

for when

(╯°□°)╯ ┻━┻ ︵

makes you

developer.atlassian.com/sfdc

• Version control and change management

• Less conflicts and wasted time

• Better collaboration in a team environment

• Faster release cycles

• Better visibility into development

Why?Why?

Look for

Developer Zonein the

Brought to you by Atlassian’s Salesforce Development Team

Thank you!

top related