Skip to main content

GS DevOps Mate Series: Part Two

Groundswell Team
On , In Tips & Tricks

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:

  1. 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).
  2. 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.
  3. Being open-source and everything in JS, you have all the liberty to add more features as long as you have a developer that knows basic NodeJs and JavaScript. We will also be releasing features regularly, which you can always use with the latest public docker image.
  4. We do not want you to fill your build YAML files with a lot of cryptic bash script. Instead, now you have the power of NodeJS and JavaScript at your disposal to handle things in a more sophisticated way.

Core Features:

GS DevOp Mate's core features are that it is platform agnostic, completely written in modern JavaScriot, Git Based Diss MDAPI package creation, deployments & validations with automation, Apex Test Class Runner, Scratch Org Creation, 2nd Generation Managed Packaging, Metadata Retrieval
  1. 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.
  2. You can deploy and validate these packages to a target org. Authentication to an Org can be done both using JWT or username/password.
  3. 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.
  4. It supports scratch org creation and deployment.
  5. It also supports the Creation of Second Generation Managed Packages and Unlocked Packages from an SFDX repository.
  6. 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. 
  7. Send detailed build success and failure notifications to the Slack channel of your choice.

What it is not?

  1. 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.
  2. It is more suited for teams comfortable with Git, Salesforce metadata, and version control in general.
  3. Since all these CI/CD services provide pretty impressive UIs to manage deployments and pipelines, it does not have its own UI.
  4. 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.

GS DevOps Mate is a customer JavaScript Module + other NPM Dependency Modules. Azure Devops, BitBucket Pipelines, CircleCI, GitHub Actions, Codeship, Google Cloud Build, Gitlab, Buddy, AWS CodeBuild, Semaphore CI, Shippable, Codefresh etc.

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 into 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.

Let’s connect

We’d love to get to know your business better, and chat about how we can harness the power of Salesforce to help achieve your long-term goals.

Start the conversation

Let’s connect

Whether you’re looking for a quick fix, a major transformation, or expert consulting to help you navigate through it all, we’d love to hear from you.
Want to join our team?
Visit our careers page for current openings.
Our HQ
650 W Georgia St Suite 1300 Vancouver, BC V6B 4N8 (604) 628-3421
General inquiries
info@gscloudsolutions.com