Dreamforce recap—Design Patterns for Salesforce CI/CD
On Dreamforce '22, I presented a session on Design Patterns for Salesforce CI/CD. In this article, I'll provide some extra resources for those seeking to dive further into this topic; and I'll share the link to NaCi (Not another CI tool), the tool I created to create YAML pipeline files using clicks!
Slides
Here are the slides that I used in my presentation, though they don't make much sense without someone explaining the concepts :)
Videos
I also played 2 videos, one showing how to configure the CI pipeline, and another showing the developer workflow. Here you go:
And then
SalesforceBen Article
This presentation was loosely based on my SalesforceBen article
There I go into a little more detail about the rationale for some of my decisions and provide links to extra resources for very specific topics.
I highly recommend reading the article to solidify the knowledge you gain from the session!
NaCi (Not another CI tool)
In the presentation, I showed how I created an entire YAML file for my CI/CD pipeline using a new tool I created.
Here's the tool:
I'll soon be working on adding support for Bitbucket Pipelines and GitLab CI. Consider subscribing to stay tuned!
The Deployment Pipeline
During the presentation, I talked about a Salesforce deployment pipeline, which I defined as follows:
An automated process that runs your salesforce metadata through a series of steps such as quality checks, tests and deployments. This process fires in response to events in your version control repository.
Each successful step increases confidence in our implementation.
The original term was coined by Jez Humble in his book Continuous Delivery
The book is a little dated, and some of the problems he describes are either already solved by common tools today, or don't translate too well to Salesforce development. Still, I do recommend reading the book as it'll give you a ton of history and context about CI/CD.
To learn more about the Deployment Pipeline concept, you can this article:
Docker
I also mentioned how I could've used Docker to reduce the number of steps in my pipeline. Docker is a big topic, I suggest watching this (old but valid) Dreamforce session:
One last thing
That's all for now! Thanks for coming to my session or for reading this summary.
If you liked this content, consider subscribing to this blog! I blog about creating fullstack applications with the Salesforce API.