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:

0:00
/
CI/CD Configuration Steps

And then

SalesforceBen Article

This presentation was loosely based on my SalesforceBen article

Build Your Own CI/CD Pipeline in Salesforce (Using GitHub Actions) | Salesforce Ben
Learn how to create your own CI/CD pipeline (using GitHub actions) in Salesforce with this comprehensive tutorial.

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:

Not another CI tool
Not another CI 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:

Patterns - Continuous Delivery

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:

Salesforce Live
Docker is an exciting new developer technology that is taking containers out of data-centers and onto your laptop. Docker solves the “Well, it worked on my machine...” problem by giving you repeatable builds and excellent tools for debugging and testing formations of containers locally, along with a…

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.

Subscribe for exclusive Salesforce Engineering tips, expert DevOps content, and previews from my book 'Clean Apex Code' – by the creator of HappySoup.io!
fullstackdev@pro.com
Subscribe