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

Easy Salesforce
CI/CD for everyone
Using open-source only :)
Easy Salesforce CI/CD with Open Source Only - Dreamforce 23
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
Easy Salesforce CI/CD with Open Source Only - Dreamforce 23
Thank you
1 de 39

Recomendados

Your admin toolbelt is not complete without Salesforce DX por
Your admin toolbelt is not complete without Salesforce DXYour admin toolbelt is not complete without Salesforce DX
Your admin toolbelt is not complete without Salesforce DXDaniel Stange
1.1K visualizações39 slides
SFDX Presentation por
SFDX PresentationSFDX Presentation
SFDX PresentationBohdan Dovhań
1.3K visualizações34 slides
Get started with Salesforce DX por
Get started with Salesforce DXGet started with Salesforce DX
Get started with Salesforce DXAnurag Bhardwaj
255 visualizações14 slides
Chicago Salesforce Saturday - Tools Presentation por
Chicago Salesforce Saturday  - Tools PresentationChicago Salesforce Saturday  - Tools Presentation
Chicago Salesforce Saturday - Tools PresentationDavid Helgerson
152 visualizações13 slides
Salesforce Developer eXperience (SFDX) por
Salesforce Developer eXperience (SFDX)Salesforce Developer eXperience (SFDX)
Salesforce Developer eXperience (SFDX)Bohdan Dovhań
570 visualizações33 slides
Fun with Jenkins & Salesforce por
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & SalesforceAbhinav Gupta
3K visualizações22 slides

Mais conteúdo relacionado

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

Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011) por
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
3.8K visualizações52 slides
Salesforce CLI por
Salesforce CLISalesforce CLI
Salesforce CLIKeir Bowden
496 visualizações20 slides
Build your apps everywhere with Lightning Web Components Open Source, Fabien ... por
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
209 visualizações26 slides
SFDX - Spring 2019 Update por
SFDX - Spring 2019 UpdateSFDX - Spring 2019 Update
SFDX - Spring 2019 UpdateBohdan Dovhań
737 visualizações34 slides
Salesforce DX for Admin v2 por
Salesforce DX for Admin v2Salesforce DX for Admin v2
Salesforce DX for Admin v2Thierry TROUIN ☁
174 visualizações47 slides
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf... por
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
227 visualizações26 slides

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

Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011) por Fabrice Bernhard
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 Bernhard3.8K visualizações
Salesforce CLI por Keir Bowden
Salesforce CLISalesforce CLI
Salesforce CLI
Keir Bowden496 visualizações
Build your apps everywhere with Lightning Web Components Open Source, Fabien ... por CzechDreamin
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 ...
CzechDreamin209 visualizações
SFDX - Spring 2019 Update por Bohdan Dovhań
SFDX - Spring 2019 UpdateSFDX - Spring 2019 Update
SFDX - Spring 2019 Update
Bohdan Dovhań737 visualizações
Salesforce DX for Admin v2 por Thierry TROUIN ☁
Salesforce DX for Admin v2Salesforce DX for Admin v2
Salesforce DX for Admin v2
Thierry TROUIN ☁174 visualizações
Democratizing Serverless: the New Open Source, Cloud Agnostic Functions Platf... por Codemotion
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...
Codemotion227 visualizações
Salesforce DX for admin por Thierry TROUIN ☁
Salesforce DX for adminSalesforce DX for admin
Salesforce DX for admin
Thierry TROUIN ☁237 visualizações
Introduction to FreeNAS development by John Hixson por iXsystems
Introduction to FreeNAS development by John HixsonIntroduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John Hixson
iXsystems2.4K visualizações
My tools for sfdc developer por EXIAHUANG
My tools for sfdc developerMy tools for sfdc developer
My tools for sfdc developer
EXIAHUANG227 visualizações
My "Perfect" Toolchain Setup for Grails Projects por GR8Conf
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
GR8Conf4.4K visualizações
Deploying software at Scale por Kris Buytaert
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
Kris Buytaert2.5K visualizações
Chicago Docker Meetup Presentation - Mediafly por Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
Mediafly2.7K visualizações
An intro to git por Dan Shrader
An intro to gitAn intro to git
An intro to git
Dan Shrader95 visualizações
Django dev-env-my-way por Robert Lujo
Django dev-env-my-wayDjango dev-env-my-way
Django dev-env-my-way
Robert Lujo941 visualizações
Getting started with Salesforce DX & CLI por Michael Gill
Getting started with Salesforce DX & CLIGetting started with Salesforce DX & CLI
Getting started with Salesforce DX & CLI
Michael Gill133 visualizações
A Real ADF Experience Part II por Mano Swerts
A Real ADF Experience Part IIA Real ADF Experience Part II
A Real ADF Experience Part II
Mano Swerts168 visualizações
Android 5.0 Lollipop platform change investigation report por hidenorly
Android 5.0 Lollipop platform change investigation reportAndroid 5.0 Lollipop platform change investigation report
Android 5.0 Lollipop platform change investigation report
hidenorly10.2K visualizações
Thinking DevOps in the era of the Cloud - Demi Ben-Ari por 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
Demi Ben-Ari420 visualizações
sfdx continuous Integration with Jenkins on aws (Part II) por Jérémy Vial
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 Vial673 visualizações
Comment utiliser Visual Studio Code pour travailler avec une scratch Org por Thierry TROUIN ☁
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
Thierry TROUIN ☁180 visualizações

Último

Why and How CloudStack at weSystems - Stephan Bienek - weSystems por
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsShapeBlue
111 visualizações13 slides
Business Analyst Series 2023 - Week 3 Session 5 por
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5DianaGray10
369 visualizações20 slides
Business Analyst Series 2023 - Week 4 Session 7 por
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
80 visualizações31 slides
NTGapps NTG LowCode Platform por
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform Mustafa Kuğu
141 visualizações30 slides
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... por
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...ShapeBlue
77 visualizações12 slides
"Surviving highload with Node.js", Andrii Shumada por
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada Fwdays
40 visualizações29 slides

Último(20)

Why and How CloudStack at weSystems - Stephan Bienek - weSystems por ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue111 visualizações
Business Analyst Series 2023 - Week 3 Session 5 por DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10369 visualizações
Business Analyst Series 2023 - Week 4 Session 7 por DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray1080 visualizações
NTGapps NTG LowCode Platform por Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu141 visualizações
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... por ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue77 visualizações
"Surviving highload with Node.js", Andrii Shumada por Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays40 visualizações
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... por ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue88 visualizações
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 por IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
IttrainingIttraining80 visualizações
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... por ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue46 visualizações
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... por ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue65 visualizações
HTTP headers that make your website go faster - devs.gent November 2023 por Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn28 visualizações
Five Things You SHOULD Know About Postman por Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman40 visualizações
MVP and prioritization.pdf por rahuldharwal141
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdf
rahuldharwal14138 visualizações
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... por ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue74 visualizações
DRBD Deep Dive - Philipp Reisner - LINBIT por ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue62 visualizações
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive por Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Network Automation Forum46 visualizações
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... por TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc77 visualizações
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue por ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue46 visualizações
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... por James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson133 visualizações
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue por ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue96 visualizações

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

  • 1. Easy Salesforce CI/CD for everyone Using open-source only :)
  • 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