Einstein Summary: In this Dreamforce session, Salesforce experts Nicolas Vuillamy and Jean-Pierre Rizzi discussed the importance of Continuous Integration and Continuous Deployment (CI/CD) for everyone using open source. They introduced Sfdx-hardis, a tool that simplifies the CI/CD process, making it accessible to all Salesforce users, regardless of their technical expertise. The tool allows users to easily manage versioning, has a user-friendly interface, and is free and open source. The speakers also highlighted the importance of having a release manager to oversee the process and handle any technical issues. They demonstrated how Sfdx-hardis works, showing how users can start a new task, complete their work, and publish their task with just a few clicks. The session concluded with an announcement of a new feature that integrates sfdx-hardis with Slack, allowing users to see live updates of deployments in any org.
Einstein Key Takeaways:
• Salesforce's open-source Continuous Integration/Continuous Deployment (CICD) tool, SFDX, allows for easy setup, version management, and a user interface that is free and open-source, making it accessible for everyone.
• Sfdx-hardis is designed to be user-friendly, requiring minimal development expertise. It allows contributors to work with clicks rather than command lines, making it easier for non-technical users to contribute to the project.
• The Sfdx-hardis tool is community-driven, with contributors from around the world. It is continuously improved based on user feedback and needs, demonstrating the power of the Trailblazer community in action.
6. What is a Soware?
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
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
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
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 ?
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:
30. Contributors: Easily solve deployment errors!
Automated messages on Merge Requests!
… or call the Release Manager :)
Solve with human instructions…