SlideShare a Scribd company logo
1 of 39
Download to read offline
Easy Salesforce
CI/CD for everyone
Using open-source only :)
Senior Consultant & Project Manager
Jean-Pierre Rizzi
CTO
Nicolas Vuillamy
Cloudity
European Summit Pure Player Partner
CI/CD with Salesforce
Why?
What is a Soware?
UI, Functions and Database make a… version
UI
Built by Designers
Functions
Built by Developers
Database
Built by Database Admins
What is a Salesforce Org?
All this metadata is intertwined
UI
Built by Designers
Functions
Built by Developers
Database
Built by Database Admins !
Page Builder
LWC
Flows
Object Manager
Ok, then what?
We are all Designers!
We are all Database Administrators!
We are all Developers!
We all interact with Salesforce Metadata!
Any metadata update can impact everything!
Without vs with CI/CD - DevOps
With CI/CD
Integ Prod
Scratch
Sandbox
PreProd
Sandbox
All metadata in
git (files &
branches) and
automatically
deployed by
CI/CD servers
update-accounts
billing-config
next-iteration
integration preprod production
Without CI/CD
HotFix
Dev2
Légende
BUGS
BUGS
PreProd
Dev Prod
DEV
ADMIN
RELEASE
MANAGER
Change
Sets
Change
Sets
Change
Sets
Change
Sets
Change
Sets
Metadata
manually
picked and
deployed from
org to org
DevOps with Salesforce
What are my options?
Salesforce DevOps Ecosystem
Many good options!
DevOps Center
3rd-party vendors Homemade
pipelines
Advanced DevOps scripts
using Salesforce DX .
Manually written and
maintained individually on
each client project.
Pre-made pipelines
Advanced DevOps scripts
packaged and maintained in
a single repository
Salesforce DevOps Ecosystem Summary
Setup &
Maintenance
Versioning
Visual User
Interface
Licenses /
Pricing
Modular
packages
3rd party
products 😃 😶 😍 😭
Salesforce
DevOps Center 😶 😶 😶 😍
Homemade
pipeline 😭 😃 😍
DX@Scale
😶 😃 😍 😃
sfdx-hardis
by Cloudity 😃 😃 😃 😍
The open-source
simple option
Homemade pipelines vs sfdx-hardis
Both efficient, and require no licenses, but…
● Requires Advanced DevOps expertise
● Complex setup & maintenance
● Contributors work with command lines
● Requires minimal DevOps expertise
● Easy setup & maintenance
● Contributors work with clicks
Recurring
One-off
Sfdx-hardis: the SFDX CLI plugin!
● Smart sfdx commands orchestrator
● Handles advanced use cases
○ Deployments Overwrite management
● Open-source, fully documented and
maintained by the community
● Ready to use CI/CD Pipelines for Gitlab,
Azure & GitHub (and Bitbucket soon!)
● Leverages other sfdx-plugins
○ sfdx-git-delta: Deployment
○ sfdx-data-move-utility: Data loader
○ texei-sfdx-plugin: Toolbox
○ sfdx-essentials: XML operations
Sfdx-hardis: the VS Code Extension!
● Work with clicks, not command lines !
● Minimal menu for Admins
● Interactive path assistants for
operations
● Open-source, fully documented with
videos and maintained by the
community
● Many extra features for advanced use
https://tinyurl.com/sfdx-hardis-vscode
How does it work?
Implementation Roles
Everybody has a part to play!
Setup Manager
Release Manager
Contributor (Admin, Dev)
Setup Manager
They own the strategy
Installs the CI/CD Pipeline on a Salesforce
project
● Initialize git repository
● Initialize git branches & SF orgs strategy
● Initialize Salesforce DX project
○ without metadatas: incremental
versioning
○ with metadatas: full versioning
● Initialize CI/CD Servers Authentication
Required expertise :
● Git (advanced)
● Salesforce DX
● Salesforce
Admin
Fluido Freelancer
Freelancer
Admin
SmartenUp Freelancer
Examples of branches & orgs strategy
Release Manager
They own the process
Responsible for deployments and respect
of CI/CD best practices
● Validates Merge Requests submitted
by Contributors
● Triggers deployments to major orgs
(UAT, Preprod, Prod)
● Assists Contributors
○ Provides /refresh dev Sandboxes used
for config & dev
○ Solves merge conflicts
○ Maintain CI/CD configuration
Required expertise :
● Git (basics)
● Salesforce DX
● Salesforce
Algeco Yooz Yooz Admin
Contributor
They own the features… and use your pipeline everyday!
Customize Salesforce according to the
requirements
● Design: Layouts, Lightning pages, LWC
● Functions: Automations,
Configuration, Apex
● Database: Build Object Model
● Create Merge Request to publish
their work at the upper level in the
branch hierarchy
Required expertise :
● Salesforce
● Read a doc
● Watch videos
Freelancer SmartenUp
You ?
How to work as a
contributor?
Start your work
Just learn simple git and sfdx commands… OR…
● git checkout integration
● git pull
● git checkout -b features/dev/my-updates
integration
● sfdx auth:web:login --setdefaultusername
--instanceurl https://test.salesforce.com
● sfdx force:source:tracking:clear --noprompt
● sfdx force:source:push -g -w 60 --forceoverwrite
● sfdx force:apex:execute -f init-script.apex
● sfdx force:user:permset:assign -n
MYPERMISSIONSET -u YOURUSERNAME
● sfdx sfdmu:run --sourceusername
YOURUSERNAME -p SFDMUPROJECT
--noprompt
Click on SFDX-Hardis menu action:
Commit your work
Just learn simple git and sfdx commands… OR…
● sfdx force:source:pull
● sfdx:force:source:retrieve –m
CustomApplication:MYAPPLICATION
● git add file1
● git add file2.xml
● git add file3.xml
● git commit –m MyCommitMessage
Click on SFDX-Hardis menu action:
… and select and commit files using
VsCode git extension (still CLICKS ONLY !)
Prepare your Merge Request
Just learn simple git and sfdx commands… OR…
● Update manually package.xml and
destructiveChanges.xml files
● Remove permissions from Profiles as they will be
deprecated
● Remove System.debug in apex
● And again some commands !
● git add manifest/package.xml
● git add manifest/destructiveChanges.xml
● git commit –m
MyPackageConfigCommitMessage
● git push –set-upstream
origin/YOURBRANCHNAME
Click on SFDX-Hardis menu action:
Create your Merge Request in UI
Merge Request checks
Prevent technical debt from the start !
● Deployment simulation
○ Be sure your deployment will succeed!
● Quality gate with MegaLinter
○ Apex
○ LWC
○ Security (hard-coded tokens…)
○ Excessive copy-pastes
○ Coming soon: Flow Linter!
Contributors: “Oops, what are those errors?”
Contributors: Easily solve deployment errors!
Automated messages on Merge Requests!
… or call the Release Manager :)
Solve with human instructions…
Demo time!
https://youtu.be/zEYqTd2txU4
New in sfdx-hardis since… today !
DREAMFORCE ANNOUNCEMENT
+
Sfdx-hardis Slack Integration
Follow your deployments in your own slack channels !
Credits
They coded in sfdx-hardis!
Yooz
Salesforce CaseNine
Fluido Freelancer
Admin
Credits
They inspired features for SFDX-Hardis!
Texei Salesforce
Algeco
Salto.io
Artist
DX@Scale
Admin Admin
You ?
Dreamforce
Thanks to all users!
● Full documentation
● Video tutorials
● Community Support available!
https://sfdx-hardis.cloudity.com
RAD Women needs your help!
radwomen.org/be-a-part-of-radwomen/
@radwomencode
Thank you

More Related Content

Similar to Easy Salesforce CI/CD with Open Source Only - Dreamforce 23

Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
 
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...CzechDreamin
 
SFDX - Spring 2019 Update
SFDX - Spring 2019 UpdateSFDX - Spring 2019 Update
SFDX - Spring 2019 UpdateBohdan Dovhań
 
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf...
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf...Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf...
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf...Codemotion
 
Introduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John HixsonIntroduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John HixsoniXsystems
 
My tools for sfdc developer
My tools for sfdc developerMy tools for sfdc developer
My tools for sfdc developerEXIAHUANG
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsGR8Conf
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyMediafly
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-wayRobert Lujo
 
Getting started with Salesforce DX & CLI
Getting started with Salesforce DX & CLIGetting started with Salesforce DX & CLI
Getting started with Salesforce DX & CLIMichael Gill
 
A Real ADF Experience Part II
A Real ADF Experience Part IIA Real ADF Experience Part II
A Real ADF Experience Part IIMano Swerts
 
Android 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation reportAndroid 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation reporthidenorly
 
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriThinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriDemi Ben-Ari
 
sfdx continuous Integration with Jenkins on aws (Part II)
sfdx continuous Integration with Jenkins on aws (Part II)sfdx continuous Integration with Jenkins on aws (Part II)
sfdx continuous Integration with Jenkins on aws (Part II)Jérémy Vial
 
Comment utiliser Visual Studio Code pour travailler avec une scratch Org
Comment utiliser Visual Studio Code pour travailler avec une scratch OrgComment utiliser Visual Studio Code pour travailler avec une scratch Org
Comment utiliser Visual Studio Code pour travailler avec une scratch OrgThierry TROUIN ☁
 

Similar to Easy Salesforce CI/CD with Open Source Only - Dreamforce 23 (20)

Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Salesforce CLI
Salesforce CLISalesforce CLI
Salesforce CLI
 
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
 
SFDX - Spring 2019 Update
SFDX - Spring 2019 UpdateSFDX - Spring 2019 Update
SFDX - Spring 2019 Update
 
Salesforce DX for Admin v2
Salesforce DX for Admin v2Salesforce DX for Admin v2
Salesforce DX for Admin v2
 
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf...
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf...Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf...
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf...
 
Salesforce DX for admin
Salesforce DX for adminSalesforce DX for admin
Salesforce DX for admin
 
Introduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John HixsonIntroduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John Hixson
 
My tools for sfdc developer
My tools for sfdc developerMy tools for sfdc developer
My tools for sfdc developer
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 
An intro to git
An intro to gitAn intro to git
An intro to git
 
Django dev-env-my-way
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
 
Getting started with Salesforce DX & CLI
Getting started with Salesforce DX & CLIGetting started with Salesforce DX & CLI
Getting started with Salesforce DX & CLI
 
A Real ADF Experience Part II
A Real ADF Experience Part IIA Real ADF Experience Part II
A Real ADF Experience Part II
 
Android 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation reportAndroid 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation report
 
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriThinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
 
sfdx continuous Integration with Jenkins on aws (Part II)
sfdx continuous Integration with Jenkins on aws (Part II)sfdx continuous Integration with Jenkins on aws (Part II)
sfdx continuous Integration with Jenkins on aws (Part II)
 
Comment utiliser Visual Studio Code pour travailler avec une scratch Org
Comment utiliser Visual Studio Code pour travailler avec une scratch OrgComment utiliser Visual Studio Code pour travailler avec une scratch Org
Comment utiliser Visual Studio Code pour travailler avec une scratch Org
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Recently uploaded (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Easy Salesforce CI/CD with Open Source Only - Dreamforce 23

  • 1. Easy Salesforce CI/CD for everyone Using open-source only :)
  • 2.
  • 3. Senior Consultant & Project Manager Jean-Pierre Rizzi CTO Nicolas Vuillamy
  • 6. What is a Soware? UI, Functions and Database make a… version UI Built by Designers Functions Built by Developers Database Built by Database Admins
  • 7. What is a Salesforce Org? All this metadata is intertwined UI Built by Designers Functions Built by Developers Database Built by Database Admins ! Page Builder LWC Flows Object Manager
  • 8. Ok, then what? We are all Designers! We are all Database Administrators! We are all Developers! We all interact with Salesforce Metadata! Any metadata update can impact everything!
  • 9. Without vs with CI/CD - DevOps With CI/CD Integ Prod Scratch Sandbox PreProd Sandbox All metadata in git (files & branches) and automatically deployed by CI/CD servers update-accounts billing-config next-iteration integration preprod production Without CI/CD HotFix Dev2 Légende BUGS BUGS PreProd Dev Prod DEV ADMIN RELEASE MANAGER Change Sets Change Sets Change Sets Change Sets Change Sets Metadata manually picked and deployed from org to org
  • 10. DevOps with Salesforce What are my options?
  • 11. Salesforce DevOps Ecosystem Many good options! DevOps Center 3rd-party vendors Homemade pipelines Advanced DevOps scripts using Salesforce DX . Manually written and maintained individually on each client project. Pre-made pipelines Advanced DevOps scripts packaged and maintained in a single repository
  • 12. Salesforce DevOps Ecosystem Summary Setup & Maintenance Versioning Visual User Interface Licenses / Pricing Modular packages 3rd party products 😃 😶 😍 😭 Salesforce DevOps Center 😶 😶 😶 😍 Homemade pipeline 😭 😃 😍 DX@Scale 😶 😃 😍 😃 sfdx-hardis by Cloudity 😃 😃 😃 😍
  • 14. Homemade pipelines vs sfdx-hardis Both efficient, and require no licenses, but… ● Requires Advanced DevOps expertise ● Complex setup & maintenance ● Contributors work with command lines ● Requires minimal DevOps expertise ● Easy setup & maintenance ● Contributors work with clicks Recurring One-off
  • 15. Sfdx-hardis: the SFDX CLI plugin! ● Smart sfdx commands orchestrator ● Handles advanced use cases ○ Deployments Overwrite management ● Open-source, fully documented and maintained by the community ● Ready to use CI/CD Pipelines for Gitlab, Azure & GitHub (and Bitbucket soon!) ● Leverages other sfdx-plugins ○ sfdx-git-delta: Deployment ○ sfdx-data-move-utility: Data loader ○ texei-sfdx-plugin: Toolbox ○ sfdx-essentials: XML operations
  • 16. Sfdx-hardis: the VS Code Extension! ● Work with clicks, not command lines ! ● Minimal menu for Admins ● Interactive path assistants for operations ● Open-source, fully documented with videos and maintained by the community ● Many extra features for advanced use https://tinyurl.com/sfdx-hardis-vscode
  • 17. How does it work?
  • 18. Implementation Roles Everybody has a part to play! Setup Manager Release Manager Contributor (Admin, Dev)
  • 19. Setup Manager They own the strategy Installs the CI/CD Pipeline on a Salesforce project ● Initialize git repository ● Initialize git branches & SF orgs strategy ● Initialize Salesforce DX project ○ without metadatas: incremental versioning ○ with metadatas: full versioning ● Initialize CI/CD Servers Authentication Required expertise : ● Git (advanced) ● Salesforce DX ● Salesforce Admin Fluido Freelancer Freelancer Admin SmartenUp Freelancer
  • 20. Examples of branches & orgs strategy
  • 21. Release Manager They own the process Responsible for deployments and respect of CI/CD best practices ● Validates Merge Requests submitted by Contributors ● Triggers deployments to major orgs (UAT, Preprod, Prod) ● Assists Contributors ○ Provides /refresh dev Sandboxes used for config & dev ○ Solves merge conflicts ○ Maintain CI/CD configuration Required expertise : ● Git (basics) ● Salesforce DX ● Salesforce Algeco Yooz Yooz Admin
  • 22. Contributor They own the features… and use your pipeline everyday! Customize Salesforce according to the requirements ● Design: Layouts, Lightning pages, LWC ● Functions: Automations, Configuration, Apex ● Database: Build Object Model ● Create Merge Request to publish their work at the upper level in the branch hierarchy Required expertise : ● Salesforce ● Read a doc ● Watch videos Freelancer SmartenUp You ?
  • 23. How to work as a contributor?
  • 24. Start your work Just learn simple git and sfdx commands… OR… ● git checkout integration ● git pull ● git checkout -b features/dev/my-updates integration ● sfdx auth:web:login --setdefaultusername --instanceurl https://test.salesforce.com ● sfdx force:source:tracking:clear --noprompt ● sfdx force:source:push -g -w 60 --forceoverwrite ● sfdx force:apex:execute -f init-script.apex ● sfdx force:user:permset:assign -n MYPERMISSIONSET -u YOURUSERNAME ● sfdx sfdmu:run --sourceusername YOURUSERNAME -p SFDMUPROJECT --noprompt Click on SFDX-Hardis menu action:
  • 25. Commit your work Just learn simple git and sfdx commands… OR… ● sfdx force:source:pull ● sfdx:force:source:retrieve –m CustomApplication:MYAPPLICATION ● git add file1 ● git add file2.xml ● git add file3.xml ● git commit –m MyCommitMessage Click on SFDX-Hardis menu action: … and select and commit files using VsCode git extension (still CLICKS ONLY !)
  • 26. Prepare your Merge Request Just learn simple git and sfdx commands… OR… ● Update manually package.xml and destructiveChanges.xml files ● Remove permissions from Profiles as they will be deprecated ● Remove System.debug in apex ● And again some commands ! ● git add manifest/package.xml ● git add manifest/destructiveChanges.xml ● git commit –m MyPackageConfigCommitMessage ● git push –set-upstream origin/YOURBRANCHNAME Click on SFDX-Hardis menu action:
  • 27. Create your Merge Request in UI
  • 28. Merge Request checks Prevent technical debt from the start ! ● Deployment simulation ○ Be sure your deployment will succeed! ● Quality gate with MegaLinter ○ Apex ○ LWC ○ Security (hard-coded tokens…) ○ Excessive copy-pastes ○ Coming soon: Flow Linter!
  • 29. Contributors: “Oops, what are those errors?”
  • 30. Contributors: Easily solve deployment errors! Automated messages on Merge Requests! … or call the Release Manager :) Solve with human instructions…
  • 32. New in sfdx-hardis since… today ! DREAMFORCE ANNOUNCEMENT +
  • 33. Sfdx-hardis Slack Integration Follow your deployments in your own slack channels !
  • 34. Credits They coded in sfdx-hardis! Yooz Salesforce CaseNine Fluido Freelancer Admin
  • 35. Credits They inspired features for SFDX-Hardis! Texei Salesforce Algeco Salto.io Artist DX@Scale Admin Admin You ? Dreamforce
  • 36. Thanks to all users! ● Full documentation ● Video tutorials ● Community Support available! https://sfdx-hardis.cloudity.com
  • 37. RAD Women needs your help! radwomen.org/be-a-part-of-radwomen/ @radwomencode
  • 38.