In the last blog post, we talked about some of the motivations and reasons behind the origin of GS DevOps Mate. In this part, we will touch base on what it is tech-wise, its unique features, and why we have designed and built it the way it is today
What is GS DevOps Mate?
It is a Dockerized NodeJS CLI wrapper around SFDX commands to perform many of the Salesforce CI/CD tasks easily, efficiently, and effectively.
Where does DevOps Mate fit into your Release Systems Landscape?
Tech Stack and the reasons behind it:
- SFDX is a vast list of CLI commands meant to perform various actions on the Salesforce platform – but it’s a huge list when it comes to performing operations related to CI/CD for the platform. We imagined this tool as a set of pre-baked scripts to perform concrete actions specific to CI/CD for a DevOps team, without getting into the nitty-gritty of SFDX commands and without figuring out which ones are meant for deployment, testing, etc. (and how to combine them effectively).
- Having this tool as a Docker image allows us to utilize the same commands across various CI/CD services. It also provides us with the liberty to have SFDX and bash available at any team’s disposal to use our commands and the raw SFDX and bash ones if there is a need. Having a Docker image already available with all the dependencies also improves the performance instead of downloading the build-related dependencies at the build time.
- You can create a deployable package from source control based on the latest changes or between any two commits. The repo can be either in SFDX or MDAPI format.
- You can deploy and validate these packages to a target org. Authentication to an Org can be done both using JWT or username/password.
- It can be used to run all, local, or specific test classes on a scheduled basis and can be configured to pass a test run based on a custom-defined percentage for your target Org.
- It supports scratch org creation and deployment.
- It also supports the Creation of Second Generation Managed Packages and Unlocked Packages from an SFDX repository.
- You can also do package manifest-based retrievals, full org retrievals, and change-set-based retrievals into your Git repository both in SFDX and MDAPI formats.
- Send detailed build success and failure notifications to the Slack channel of your choice.
What it is not?
- DevOps Mate is not a full-fledged CI/CD or a Managed Service. It would need someone who has the basic knowledge and can understand the aspects of running pipelines or deployments on a CI/CD service of your choice like BitBucket Pipelines, GitHub Actions, Azure DevOps, CircleCI, etc. The features and integrations that are specific to the CI/CD service provider can vary.
- It is more suited for teams comfortable with Git, Salesforce metadata, and version control in general.
- Since all these CI/CD services provide pretty impressive UIs to manage deployments and pipelines, it does not have its own UI.
- It provides a simple one-click way to pull and commit the change sets for admins, but it does not offer any enhanced UI to select changed components etc.
These are not precisely the shortcomings of DevOps Mate as we made these decisions consciously.
As you can see there are many CI/CD services that support Docker as a build runtime as a first-class citizen, which means technically, GS DevOps Mate can run on any of these and many more with little to no change. GS DevOps Mate is platform agnostic – no more vendor lock-in or relying on Salesforce-specific deployment tools – and if your IT or DevOps department has already invested in any of these and has well-defined processes and Integrations with any of these services, you are ready to reap the benefits of DevOps Mate and your CI/CD service of choice to its full glory!!
All of these services are specialized in generic CI/CD features like:
- Access Management
- Built-in Integrations with remote version control providers like GitHub, BitBucket, etc. Integrations with Docker Hosting services like Docker Hub
- An easy and industry-standard way to define and track deployments and pipelines
- Artifact management
- Support for Notifications via Email, Slack, etc., and a lot more.
- Performance and Security: These services make sure that their performance and security is up to the mark by using techniques like caching Docker images and providing a secure way to store keys and passwords.
These pointers were good enough reasons for us to decide that there is no point in reinventing the wheel when there are so many providers out there doing it so well.
Finally, we want to reiterate that all this is free and open-source, and we have many plans to enhance it and add more features, which would be available to you but not restrict you. DevOps Mate being open source also means you have full freedom to fork it, enhance it yourself, and use it the way you want.
Watch our webinar recording for a live demo below:
In the upcoming blog posts, we will talk about using GS DevOps Mate on some of these well-known services, and possibly extending it so that all of you can contribute. We have learned and benefited a lot from this incredible Salesforce community, and I think this is just a small thank-you gesture from us here at Groundswell – and we will keep doing it.
In the next part, we will talk about how to configure GS DevOps Mate on BitBucket Pipelines. We would also like to hear from you – what are some of the other CI/CD services like Azure DevOps, CircleCI, or GitHub Actions you would like to set up DevOps Mate – and we will try our best to cover them in the further blog posts.