2. Deployment options
1. Change sets
2. Deployment using IDE (Eclipse)
3. Continuous Integration tools (Bamboo,
Jenkins, AnthillPro...) ❤
3. What is Bamboo?
● Bamboo is a continuous integration server
from Atlassian (makers of JIRA)
● supports builds in most programming
languages using any build tool, including
Ant, Maven, and any command line tools
4. What are Ant Scripts?
● Apache Ant is a software tool for automating
software build processes - uses XML to
describe build processes
● most powerful method of deploying SF
metadata and code
● Force.com Migration Tool available for
download
5.
6. Terminology
Deploy - move configuration and/or code into a
Salesforce instance
Plan - an individual configuration set that tells
Bamboo how to deploy
Build - an instance of a plan
Job/Stage - sub-module of a Plan
Task - sub-module of a Job
7. Build tasks
● can be individually enabled or disabled
Common example:
1. checkout content from repository
2. deploy content
3. delete content (destructive changes)
8. Repository integration
● link a default repository for the whole project
● manually add different repositories for each
build
● allow access to single branch or whole
repository
● deploy latest (default) or arbitrary commit
9. Build variables
● feed Salesforce deployment parameters
directly from Bamboo
● e.g. login details, validation only, timeout
values, test running
● variables can be overwritten for each
individual job
10. Tracking
● who deployed (user based)
● stories in deployment
● commits in deployment
● build statistics (duration, success rate…)
● overwritten variables or custom commits will
be recorded in the build
11. Automation
● define Triggers to start a build job e.g. poll
repository for changes at regular intervals
● define Child Plans: have your plan kick off
other plans upon a successful build
14. Considerations
● Purely configuration projects or very small dev
projects with a single sandbox will just generate
more overhead by using repos/Bamboo.
● Not all components can be deployed (e.g. renamed
standard labels)
● Occasional problems with dependencies (e.g.
report types and reports)
● Some components more suitable for change set
deployment (e.g. flows)