SlideShare a Scribd company logo
Reusable Build Scripts for Managed 
Package Development 
Jason Lantz / Salesforce.com Foundation 
Lead Release Operations Engineer 
@jasontlantz
Safe Harbor 
Safe harbor statement under the Private Securities Litigation Reform Act of 1995: 
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of 
the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking 
statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service 
availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future 
operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use 
of our services. 
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, 
new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions 
or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and 
acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and 
manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and 
utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is 
included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These 
documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. 
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be 
delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. 
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Background
CumulusCI 
Reusable build and automation scripts to implement a best 
practices based development and release workflow for 
managed package development. 
Built by the Salesforce Foundation and released open source 
https://github.com/SalesforceFoundation/CumulusCI
Codeship.io 
Cloud hosted continuous integration platform with free plans for 
up to 100 builds per month (free unlimited for open source 
projects) 
Easy to setup with CumulusCI in about 15 minutes 
https://codeship.io
Grant Lifecycle App 
Open source unmanaged package to help nonprofits track 
grants received from foundations. 
Funded by a Force for Change grant from the Salesforce 
Foundation and developed by Bridge Farm Consulting 
https://github.com/britishboyindc/GrantLifecycleApp
Force for Change Grants 
The Force for Change grants program strives to accelerate 
innovation in the nonprofit and higher education sectors. 
The 2014 Force for Change grants program provides up to 
$1,500,000 in grants, individual awards up to $250,000 
http://www.salesforcefoundation.org/grants/force-for-change/
Goal 
Make the Grant Lifecycle App easier to develop 
and release as a managed package by using 
CumulusCI & Codeship.io to automate the process
Demo
Demo Setup 
• Forked to https://github.com/jlantz/GrantLifecycleApp 
• Assigned namespace (npsprep_df14_1) 
• Changed to support dynamic namespace prefixing 
– Upgrade to API 31.0 
– Add UTIL_Namespace class to detect if running in a managed package and 
dynamically handle difference between unmanaged and managed deployments 
– Not dynamically rewriting code to insert namespace prefixes as part of build! 
• Configure CumulusCI 
• https://github.com/jlantz/GrantLifecycleApp/compare/britishboyindc:master...master
Demo Roadmap 
• Make our package require another package 
• Test the change 
• Human: Submit a Pull Request 
• Merge the Pull Request 
• Upload and test a Beta Managed Package 
• Merge master to all open feature branches 
• Test all open feature branches after merge 
Manual vs Automated Process
Configuration
Configuring CumulusCI Build Scripts 
• git clone https://github.com/SalesforceFoundation/CumulusCI 
• export CUMULUSCI_PATH=~/CumulusCI (or wherever you cloned it to) 
• Copy from CumulusCI into your project 
– template/build.xml 
– template/cumulusci.properties 
– template/version.properties 
• Edit build.xml 
• Edit cumulusci.properties 
• Edit version.properties (only if building an extension package)
Configuring Automation via Codeship.io 
• Copy template/codeship.sh from CumulusCI into project repository 
• Connect Codeship to project repository on GitHub 
• Enter Test Command: 
bash codeship.sh 
• Setup Environment Variables in Codeship 
– SF_USERNAME_FEATURE (MASTER, PACKAGING, BETA, RELEASE) 
– SF_PASSWORD_FEATURE (MASTER, PACKAGING, BETA, RELEASE) 
– SF_SERVERURL_FEATURE (MASTER, PACKAGING, BETA, RELEASE) 
– GITHUB_ORG_NAME 
– GITHUB_REPO_NAME 
– GITHUB_USERNAME 
– GITHUB_PASSWORD 
– Oauth Token to packaging org - https://cumulusci-oauth-tool.herokuapp.com/
CumulusCI Build Features
CumulusCI Main Build Targets 
• deployDevOrg 
– Sets up a new dev org 
• deployCI 
– Tests as unmanaged metadata 
• deployCIPackageOrg 
– Deploys to managed package in packaging org and tests 
• deployManagedBeta 
– Installs beta managed package and tests 
• deployManaged 
– Installs production released managed package and tests
Handling Unpackaged Metadata 
Sometimes you need to deploy metadata before or after the build which you don’t 
want to include in your package 
In your repository, populate unpackaged metadata as subfolders under: 
• unpackaged/pre/* 
• unpackaged/post/* 
• unpackaged/NAMESPACE/pre/* 
• unpackaged/NAMESPACE/post/* 
CumulusCI will automatically deploy these “metadata bundles” 
at the right place in the build.
Hooking in Custom Logic 
• CumulusCI defines a number of pre and post hooks which you 
can override in your package’s build.xml 
• Example 1: Run custom logic after the src directory is deployed in any build 
<target 
name=“postDeploy”> 
YOUR 
CUSTOM 
ACTIONS 
HERE 
</target> 
• Example 2: Run custom logic before the uninstall target is run 
<target 
name=“preUninstall”> 
YOUR 
CUSTOM 
ACTIONS 
HERE 
</target>
• Option 2: Environment Variables 
• SF_USERNAME 
• SF_PASSWORD 
• SF_SERVERURL 
DE Org Credentials 
Option 1: build.properties 
• sf.username=YOUR_USER 
• sf.password=PASS+TOKEN 
• sf.serverurl=https://login.salesforce.com 
Add build.properties to 
your .gitignore!
Reusable Build Scripts for Managed Package Development (October 14, 2014)

More Related Content

What's hot

FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Dive
neil_richards
 
Leveling Up Deployment Infrastructure
Leveling Up Deployment InfrastructureLeveling Up Deployment Infrastructure
Leveling Up Deployment Infrastructure
Salesforce Engineering
 
Developing Infrastructure Code for CI & CD
Developing Infrastructure Code for CI & CDDeveloping Infrastructure Code for CI & CD
Developing Infrastructure Code for CI & CD
Ravikanth Chaganti
 
Operations Validation for Infrastructure As Code - PSConfEU 2016
Operations Validation for Infrastructure As Code - PSConfEU 2016Operations Validation for Infrastructure As Code - PSConfEU 2016
Operations Validation for Infrastructure As Code - PSConfEU 2016
Ravikanth Chaganti
 
Optimizing deployment & dev ops with tfs 2013
Optimizing deployment & dev ops with tfs 2013Optimizing deployment & dev ops with tfs 2013
Optimizing deployment & dev ops with tfs 2013
Kobi Moraz
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and Git
Alexander Vanwynsberghe
 
Deployment of DevOps Environment with CA Solutions
Deployment of DevOps Environment with CA SolutionsDeployment of DevOps Environment with CA Solutions
Deployment of DevOps Environment with CA SolutionsNic Swart
 
Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps world
Moataz Nabil
 
Power shell saturday ravikanth
Power shell saturday  ravikanthPower shell saturday  ravikanth
Power shell saturday ravikanthRavikanth Chaganti
 
Release Management in TFS 2015
Release Management in TFS 2015Release Management in TFS 2015
Release Management in TFS 2015
InCycleSoftware
 
Automated Testing in DevOps
Automated Testing in DevOpsAutomated Testing in DevOps
Automated Testing in DevOps
Haufe-Lexware GmbH & Co KG
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Hùng Nguyễn Huy
 
Using PowerShell DSC with AWS Cloud and CloudFormation
Using PowerShell DSC with AWS Cloud and CloudFormationUsing PowerShell DSC with AWS Cloud and CloudFormation
Using PowerShell DSC with AWS Cloud and CloudFormation
Ravikanth Chaganti
 
Deployment automation framework with selenium
Deployment automation framework with seleniumDeployment automation framework with selenium
Deployment automation framework with selenium
Wenhua Wang
 
Team Foundation Server Demo
Team Foundation Server DemoTeam Foundation Server Demo
Team Foundation Server Demo
phase2int
 
Continuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for SalesforceContinuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for Salesforce
Klea Kolaric
 
O365Con18 - Yo I want to extend - Stefan Bauer
O365Con18 - Yo I want to extend - Stefan BauerO365Con18 - Yo I want to extend - Stefan Bauer
O365Con18 - Yo I want to extend - Stefan Bauer
NCCOMMS
 
Continuous Delivery With Team Foundation Server
Continuous Delivery With Team Foundation ServerContinuous Delivery With Team Foundation Server
Continuous Delivery With Team Foundation Server
Daniel Ştefănescu
 
SAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous IntegrationSAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous Integration
Peter Muessig
 
Webcast: TFS 2015 & Why Upgrade
Webcast: TFS 2015 & Why UpgradeWebcast: TFS 2015 & Why Upgrade
Webcast: TFS 2015 & Why Upgrade
InCycleSoftware
 

What's hot (20)

FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Dive
 
Leveling Up Deployment Infrastructure
Leveling Up Deployment InfrastructureLeveling Up Deployment Infrastructure
Leveling Up Deployment Infrastructure
 
Developing Infrastructure Code for CI & CD
Developing Infrastructure Code for CI & CDDeveloping Infrastructure Code for CI & CD
Developing Infrastructure Code for CI & CD
 
Operations Validation for Infrastructure As Code - PSConfEU 2016
Operations Validation for Infrastructure As Code - PSConfEU 2016Operations Validation for Infrastructure As Code - PSConfEU 2016
Operations Validation for Infrastructure As Code - PSConfEU 2016
 
Optimizing deployment & dev ops with tfs 2013
Optimizing deployment & dev ops with tfs 2013Optimizing deployment & dev ops with tfs 2013
Optimizing deployment & dev ops with tfs 2013
 
Taking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and GitTaking your version control to a next level with TFS and Git
Taking your version control to a next level with TFS and Git
 
Deployment of DevOps Environment with CA Solutions
Deployment of DevOps Environment with CA SolutionsDeployment of DevOps Environment with CA Solutions
Deployment of DevOps Environment with CA Solutions
 
Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps world
 
Power shell saturday ravikanth
Power shell saturday  ravikanthPower shell saturday  ravikanth
Power shell saturday ravikanth
 
Release Management in TFS 2015
Release Management in TFS 2015Release Management in TFS 2015
Release Management in TFS 2015
 
Automated Testing in DevOps
Automated Testing in DevOpsAutomated Testing in DevOps
Automated Testing in DevOps
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 
Using PowerShell DSC with AWS Cloud and CloudFormation
Using PowerShell DSC with AWS Cloud and CloudFormationUsing PowerShell DSC with AWS Cloud and CloudFormation
Using PowerShell DSC with AWS Cloud and CloudFormation
 
Deployment automation framework with selenium
Deployment automation framework with seleniumDeployment automation framework with selenium
Deployment automation framework with selenium
 
Team Foundation Server Demo
Team Foundation Server DemoTeam Foundation Server Demo
Team Foundation Server Demo
 
Continuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for SalesforceContinuous Integration with Bamboo for Salesforce
Continuous Integration with Bamboo for Salesforce
 
O365Con18 - Yo I want to extend - Stefan Bauer
O365Con18 - Yo I want to extend - Stefan BauerO365Con18 - Yo I want to extend - Stefan Bauer
O365Con18 - Yo I want to extend - Stefan Bauer
 
Continuous Delivery With Team Foundation Server
Continuous Delivery With Team Foundation ServerContinuous Delivery With Team Foundation Server
Continuous Delivery With Team Foundation Server
 
SAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous IntegrationSAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous Integration
 
Webcast: TFS 2015 & Why Upgrade
Webcast: TFS 2015 & Why UpgradeWebcast: TFS 2015 & Why Upgrade
Webcast: TFS 2015 & Why Upgrade
 

Similar to Reusable Build Scripts for Managed Package Development (October 14, 2014)

Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
Salesforce Developers
 
Managing Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox ArchitectureManaging Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox Architecture
Alexander Sutherland
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and Salesforce
Doug Ayers
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & Agile
Sai Jithesh ☁️
 
Adopting Salesforce DX
Adopting Salesforce DXAdopting Salesforce DX
Adopting Salesforce DX
Salesforce Developers
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Salesforce Admins
 
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.comUsing Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Salesforce Developers
 
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Sudipta Deb ☁
 
Salesforce DX Pilot Product Overview
Salesforce DX Pilot Product OverviewSalesforce DX Pilot Product Overview
Salesforce DX Pilot Product Overview
Salesforce Partners
 
Simplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module developmentSimplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module development
Salesforce Developers
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE Evolved
Salesforce Developers
 
Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013
John Stevenson
 
Srecon18americas lightning talk: Auto-Cascading Security Updates Through Dock...
Srecon18americas lightning talk: Auto-Cascading Security Updates Through Dock...Srecon18americas lightning talk: Auto-Cascading Security Updates Through Dock...
Srecon18americas lightning talk: Auto-Cascading Security Updates Through Dock...
Andrey Falko
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
Salesforce Developers
 
Quit Jesting and Test your Lightning Web Components, Phillipe Ozil
Quit Jesting and Test your Lightning Web Components, Phillipe OzilQuit Jesting and Test your Lightning Web Components, Phillipe Ozil
Quit Jesting and Test your Lightning Web Components, Phillipe Ozil
CzechDreamin
 
Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18
Salesforce Developers
 
Salesforce.com Sandbox management
Salesforce.com Sandbox management Salesforce.com Sandbox management
Salesforce.com Sandbox management
Ali Akbar
 
DevOps in Salesforce AppCloud
DevOps in Salesforce AppCloudDevOps in Salesforce AppCloud
DevOps in Salesforce AppCloud
rsg00usa
 
Packaging It Up Latest Enhancements for App Distribution
Packaging It Up Latest Enhancements for App DistributionPackaging It Up Latest Enhancements for App Distribution
Packaging It Up Latest Enhancements for App Distributiondreamforce2006
 
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Salesforce Partners
 

Similar to Reusable Build Scripts for Managed Package Development (October 14, 2014) (20)

Modern App Dev: Modular Development Strategies
Modern App Dev: Modular Development StrategiesModern App Dev: Modular Development Strategies
Modern App Dev: Modular Development Strategies
 
Managing Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox ArchitectureManaging Change With A Sensible Sandbox Architecture
Managing Change With A Sensible Sandbox Architecture
 
TDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and SalesforceTDX19 - Accelerate DevOps with GitLab and Salesforce
TDX19 - Accelerate DevOps with GitLab and Salesforce
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & Agile
 
Adopting Salesforce DX
Adopting Salesforce DXAdopting Salesforce DX
Adopting Salesforce DX
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
 
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.comUsing Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
 
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
 
Salesforce DX Pilot Product Overview
Salesforce DX Pilot Product OverviewSalesforce DX Pilot Product Overview
Salesforce DX Pilot Product Overview
 
Simplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module developmentSimplify your code with Salesforce DX and module development
Simplify your code with Salesforce DX and module development
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE Evolved
 
Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013Introduction to Heroku - CCT London 2013
Introduction to Heroku - CCT London 2013
 
Srecon18americas lightning talk: Auto-Cascading Security Updates Through Dock...
Srecon18americas lightning talk: Auto-Cascading Security Updates Through Dock...Srecon18americas lightning talk: Auto-Cascading Security Updates Through Dock...
Srecon18americas lightning talk: Auto-Cascading Security Updates Through Dock...
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
Quit Jesting and Test your Lightning Web Components, Phillipe Ozil
Quit Jesting and Test your Lightning Web Components, Phillipe OzilQuit Jesting and Test your Lightning Web Components, Phillipe Ozil
Quit Jesting and Test your Lightning Web Components, Phillipe Ozil
 
Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18
 
Salesforce.com Sandbox management
Salesforce.com Sandbox management Salesforce.com Sandbox management
Salesforce.com Sandbox management
 
DevOps in Salesforce AppCloud
DevOps in Salesforce AppCloudDevOps in Salesforce AppCloud
DevOps in Salesforce AppCloud
 
Packaging It Up Latest Enhancements for App Distribution
Packaging It Up Latest Enhancements for App DistributionPackaging It Up Latest Enhancements for App Distribution
Packaging It Up Latest Enhancements for App Distribution
 
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...Automating the Impossible: End to End Team Development for ISVs (October 14, ...
Automating the Impossible: End to End Team Development for ISVs (October 14, ...
 

More from Salesforce Partners

ISV Monthly Tech Enablement (August 2017)
ISV Monthly Tech Enablement (August 2017)ISV Monthly Tech Enablement (August 2017)
ISV Monthly Tech Enablement (August 2017)
Salesforce Partners
 
Partner Roadmap Webinar (August 3, 2017)
Partner Roadmap Webinar (August 3, 2017)Partner Roadmap Webinar (August 3, 2017)
Partner Roadmap Webinar (August 3, 2017)
Salesforce Partners
 
Lightning Now for Consulting Partners
Lightning Now for Consulting PartnersLightning Now for Consulting Partners
Lightning Now for Consulting Partners
Salesforce Partners
 
ISV Monthly Tech Enablement (July 2017)
ISV Monthly Tech Enablement (July 2017)ISV Monthly Tech Enablement (July 2017)
ISV Monthly Tech Enablement (July 2017)
Salesforce Partners
 
Salesforce University - Guide to Certification Paths
Salesforce University - Guide to Certification PathsSalesforce University - Guide to Certification Paths
Salesforce University - Guide to Certification Paths
Salesforce Partners
 
Salesforce Proficiency Pack for Administrators
Salesforce Proficiency Pack for AdministratorsSalesforce Proficiency Pack for Administrators
Salesforce Proficiency Pack for Administrators
Salesforce Partners
 
Partner Roadmap Webinar (July 6, 2017)
Partner Roadmap Webinar (July 6, 2017)Partner Roadmap Webinar (July 6, 2017)
Partner Roadmap Webinar (July 6, 2017)
Salesforce Partners
 
Environment Hub Fundamentals (Salesforce Partners)
Environment Hub Fundamentals (Salesforce Partners)Environment Hub Fundamentals (Salesforce Partners)
Environment Hub Fundamentals (Salesforce Partners)
Salesforce Partners
 
Demo Environment Best Practices (Salesforce Partners)
Demo Environment Best Practices (Salesforce Partners)Demo Environment Best Practices (Salesforce Partners)
Demo Environment Best Practices (Salesforce Partners)
Salesforce Partners
 
Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)
Salesforce Partners
 
Salesforce Sales Professional Exam Prep
Salesforce Sales Professional Exam PrepSalesforce Sales Professional Exam Prep
Salesforce Sales Professional Exam Prep
Salesforce Partners
 
Einstein Analytics for Partners
Einstein Analytics for PartnersEinstein Analytics for Partners
Einstein Analytics for Partners
Salesforce Partners
 
Sales Cloud Lightning Migration Best Practices
Sales Cloud Lightning Migration Best PracticesSales Cloud Lightning Migration Best Practices
Sales Cloud Lightning Migration Best Practices
Salesforce Partners
 
AppExchange Tech Enablement June 2017
AppExchange Tech Enablement June 2017AppExchange Tech Enablement June 2017
AppExchange Tech Enablement June 2017
Salesforce Partners
 
Roadmap Webinar Summer '17 (June 1, 2017)
Roadmap Webinar Summer '17 (June 1, 2017)Roadmap Webinar Summer '17 (June 1, 2017)
Roadmap Webinar Summer '17 (June 1, 2017)
Salesforce Partners
 
FSL Implementation Guidance Part 1 (May 10, 2017)
FSL Implementation Guidance Part 1 (May 10, 2017)FSL Implementation Guidance Part 1 (May 10, 2017)
FSL Implementation Guidance Part 1 (May 10, 2017)
Salesforce Partners
 
AMP Fall & Winter '17 Packages
AMP Fall & Winter '17 Packages AMP Fall & Winter '17 Packages
AMP Fall & Winter '17 Packages
Salesforce Partners
 
ISV Monthly Tech Enablement (May 18, 2017)
ISV Monthly Tech Enablement (May 18, 2017)ISV Monthly Tech Enablement (May 18, 2017)
ISV Monthly Tech Enablement (May 18, 2017)
Salesforce Partners
 
Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Salesforce Partners
 
FSL Implementation Guidance Part 1
FSL Implementation Guidance Part 1FSL Implementation Guidance Part 1
FSL Implementation Guidance Part 1
Salesforce Partners
 

More from Salesforce Partners (20)

ISV Monthly Tech Enablement (August 2017)
ISV Monthly Tech Enablement (August 2017)ISV Monthly Tech Enablement (August 2017)
ISV Monthly Tech Enablement (August 2017)
 
Partner Roadmap Webinar (August 3, 2017)
Partner Roadmap Webinar (August 3, 2017)Partner Roadmap Webinar (August 3, 2017)
Partner Roadmap Webinar (August 3, 2017)
 
Lightning Now for Consulting Partners
Lightning Now for Consulting PartnersLightning Now for Consulting Partners
Lightning Now for Consulting Partners
 
ISV Monthly Tech Enablement (July 2017)
ISV Monthly Tech Enablement (July 2017)ISV Monthly Tech Enablement (July 2017)
ISV Monthly Tech Enablement (July 2017)
 
Salesforce University - Guide to Certification Paths
Salesforce University - Guide to Certification PathsSalesforce University - Guide to Certification Paths
Salesforce University - Guide to Certification Paths
 
Salesforce Proficiency Pack for Administrators
Salesforce Proficiency Pack for AdministratorsSalesforce Proficiency Pack for Administrators
Salesforce Proficiency Pack for Administrators
 
Partner Roadmap Webinar (July 6, 2017)
Partner Roadmap Webinar (July 6, 2017)Partner Roadmap Webinar (July 6, 2017)
Partner Roadmap Webinar (July 6, 2017)
 
Environment Hub Fundamentals (Salesforce Partners)
Environment Hub Fundamentals (Salesforce Partners)Environment Hub Fundamentals (Salesforce Partners)
Environment Hub Fundamentals (Salesforce Partners)
 
Demo Environment Best Practices (Salesforce Partners)
Demo Environment Best Practices (Salesforce Partners)Demo Environment Best Practices (Salesforce Partners)
Demo Environment Best Practices (Salesforce Partners)
 
Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)
 
Salesforce Sales Professional Exam Prep
Salesforce Sales Professional Exam PrepSalesforce Sales Professional Exam Prep
Salesforce Sales Professional Exam Prep
 
Einstein Analytics for Partners
Einstein Analytics for PartnersEinstein Analytics for Partners
Einstein Analytics for Partners
 
Sales Cloud Lightning Migration Best Practices
Sales Cloud Lightning Migration Best PracticesSales Cloud Lightning Migration Best Practices
Sales Cloud Lightning Migration Best Practices
 
AppExchange Tech Enablement June 2017
AppExchange Tech Enablement June 2017AppExchange Tech Enablement June 2017
AppExchange Tech Enablement June 2017
 
Roadmap Webinar Summer '17 (June 1, 2017)
Roadmap Webinar Summer '17 (June 1, 2017)Roadmap Webinar Summer '17 (June 1, 2017)
Roadmap Webinar Summer '17 (June 1, 2017)
 
FSL Implementation Guidance Part 1 (May 10, 2017)
FSL Implementation Guidance Part 1 (May 10, 2017)FSL Implementation Guidance Part 1 (May 10, 2017)
FSL Implementation Guidance Part 1 (May 10, 2017)
 
AMP Fall & Winter '17 Packages
AMP Fall & Winter '17 Packages AMP Fall & Winter '17 Packages
AMP Fall & Winter '17 Packages
 
ISV Monthly Tech Enablement (May 18, 2017)
ISV Monthly Tech Enablement (May 18, 2017)ISV Monthly Tech Enablement (May 18, 2017)
ISV Monthly Tech Enablement (May 18, 2017)
 
Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)Sales Cloud Lightning Migration Best Practices (May 12, 2017)
Sales Cloud Lightning Migration Best Practices (May 12, 2017)
 
FSL Implementation Guidance Part 1
FSL Implementation Guidance Part 1FSL Implementation Guidance Part 1
FSL Implementation Guidance Part 1
 

Recently uploaded

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 

Recently uploaded (20)

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

Reusable Build Scripts for Managed Package Development (October 14, 2014)

  • 1. Reusable Build Scripts for Managed Package Development Jason Lantz / Salesforce.com Foundation Lead Release Operations Engineer @jasontlantz
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 4. CumulusCI Reusable build and automation scripts to implement a best practices based development and release workflow for managed package development. Built by the Salesforce Foundation and released open source https://github.com/SalesforceFoundation/CumulusCI
  • 5. Codeship.io Cloud hosted continuous integration platform with free plans for up to 100 builds per month (free unlimited for open source projects) Easy to setup with CumulusCI in about 15 minutes https://codeship.io
  • 6. Grant Lifecycle App Open source unmanaged package to help nonprofits track grants received from foundations. Funded by a Force for Change grant from the Salesforce Foundation and developed by Bridge Farm Consulting https://github.com/britishboyindc/GrantLifecycleApp
  • 7. Force for Change Grants The Force for Change grants program strives to accelerate innovation in the nonprofit and higher education sectors. The 2014 Force for Change grants program provides up to $1,500,000 in grants, individual awards up to $250,000 http://www.salesforcefoundation.org/grants/force-for-change/
  • 8. Goal Make the Grant Lifecycle App easier to develop and release as a managed package by using CumulusCI & Codeship.io to automate the process
  • 10. Demo Setup • Forked to https://github.com/jlantz/GrantLifecycleApp • Assigned namespace (npsprep_df14_1) • Changed to support dynamic namespace prefixing – Upgrade to API 31.0 – Add UTIL_Namespace class to detect if running in a managed package and dynamically handle difference between unmanaged and managed deployments – Not dynamically rewriting code to insert namespace prefixes as part of build! • Configure CumulusCI • https://github.com/jlantz/GrantLifecycleApp/compare/britishboyindc:master...master
  • 11. Demo Roadmap • Make our package require another package • Test the change • Human: Submit a Pull Request • Merge the Pull Request • Upload and test a Beta Managed Package • Merge master to all open feature branches • Test all open feature branches after merge Manual vs Automated Process
  • 13. Configuring CumulusCI Build Scripts • git clone https://github.com/SalesforceFoundation/CumulusCI • export CUMULUSCI_PATH=~/CumulusCI (or wherever you cloned it to) • Copy from CumulusCI into your project – template/build.xml – template/cumulusci.properties – template/version.properties • Edit build.xml • Edit cumulusci.properties • Edit version.properties (only if building an extension package)
  • 14. Configuring Automation via Codeship.io • Copy template/codeship.sh from CumulusCI into project repository • Connect Codeship to project repository on GitHub • Enter Test Command: bash codeship.sh • Setup Environment Variables in Codeship – SF_USERNAME_FEATURE (MASTER, PACKAGING, BETA, RELEASE) – SF_PASSWORD_FEATURE (MASTER, PACKAGING, BETA, RELEASE) – SF_SERVERURL_FEATURE (MASTER, PACKAGING, BETA, RELEASE) – GITHUB_ORG_NAME – GITHUB_REPO_NAME – GITHUB_USERNAME – GITHUB_PASSWORD – Oauth Token to packaging org - https://cumulusci-oauth-tool.herokuapp.com/
  • 16. CumulusCI Main Build Targets • deployDevOrg – Sets up a new dev org • deployCI – Tests as unmanaged metadata • deployCIPackageOrg – Deploys to managed package in packaging org and tests • deployManagedBeta – Installs beta managed package and tests • deployManaged – Installs production released managed package and tests
  • 17. Handling Unpackaged Metadata Sometimes you need to deploy metadata before or after the build which you don’t want to include in your package In your repository, populate unpackaged metadata as subfolders under: • unpackaged/pre/* • unpackaged/post/* • unpackaged/NAMESPACE/pre/* • unpackaged/NAMESPACE/post/* CumulusCI will automatically deploy these “metadata bundles” at the right place in the build.
  • 18. Hooking in Custom Logic • CumulusCI defines a number of pre and post hooks which you can override in your package’s build.xml • Example 1: Run custom logic after the src directory is deployed in any build <target name=“postDeploy”> YOUR CUSTOM ACTIONS HERE </target> • Example 2: Run custom logic before the uninstall target is run <target name=“preUninstall”> YOUR CUSTOM ACTIONS HERE </target>
  • 19. • Option 2: Environment Variables • SF_USERNAME • SF_PASSWORD • SF_SERVERURL DE Org Credentials Option 1: build.properties • sf.username=YOUR_USER • sf.password=PASS+TOKEN • sf.serverurl=https://login.salesforce.com Add build.properties to your .gitignore!