As you likely know by now, FlexDeploy is an Enterprise DevOps platform with fully integrated support for Salesforce apps, metadata customizations, integrations and more. This is the third article in a blog series that will help you understand what makes FlexDeploy a perfect choice to implement DevOps, CI/CD, and release automation with Salesforce.

Here is a summary of the FlexDeploy Loves Salesforce series. Note that some article are coming soon:

In the previous blog article, we saw how easy it is to find the changes from your development or Sandbox Org(s), view differences and commit to your source control repository/source control management system (SCM). In this article, we will see how easy it is to deploy your changes to your Test and production Orgs with FlexDeploy.

Create Salesforce Package

The step to create a Package is optional with FlexDeploy. But for better control and flexibility of deployments, I suggest to use FlexDeploy’s Packages features. The Packages tab on your FlexDeploy project allows you to view existing packages and create or modify the files within the existing packages.

FlexDeploy's Packages features

These packages can also be created directly when you commit changes on the Salesforce tab. Click on the Package name to view and edit the details. The Package Details screen displays the files and other configurations about the package. You can add new files or remove files from the package. A package can consists of any number of different types of files. You can control what unit tests need to be executed by setting the Test Level and Tests.

Package details in FlexDeploy

Build Salesforce Package

Once you have created the Package, you can click on the Build button or gear icon icon to build the package. It will bring up the Build request page where you can select the branch if you would like to build from a different stream (aka branch) than configured, otherwise simply click on Submit to build from your main branch. Build operation will pull the changes from your SCM and create the package that can be deployed to any Salesforce environment. FlexDeploy will generate the package.xml based on the files selected and test configurations.  The generated package artifact will be versioned and added to Artifact Repository.

Deploy Salesforce Package(s)

After completing the build, you can choose to deploy one or many packages to your target Salesforce environment. To do this, simply click on the Deploy button or multiple gears icon. Deploy request page will allow you to select the Salesforce environment where you would like to deploy. Simply select the environment, review the packages and click Submit Request.

Deployment request form in FlexDeploy

All the selected packages will be deployed, and any unit tests will be executed as configured. You can see the status on the Execution screen and drill down for all the details and unit test execution details.

Project activity view in FlexDeploy

It is that simple to start deploying your Salesforce changes with FlexDeploy. But FlexDeploy’s Pipelines and Release Automation features take it to the next level with end-to-end automation and orchestration to deploy your changes to Production.

Release Automation

You can create a Pipeline with a simple drag and drop editor to automate your complete release process. FlexDeploy allows you to include all any technology and govern the process to ensure high quality and repeatable releases with visibility to everyone.

Release pipeline in FlexDeploy with Development, QA, and Production environments

With the extensive features provided in FlexDeploy’s Pipeline and Release Management, you can automate your process however you would like.

  • Setup your CI and CD to create and deploy packages on commits.
  • Setup Approvals for each environment within FlexDeploy or delegate your approvals to external tools like ServiceNow using Gates.
  • Schedule your deployments so they can execute during non-peak hours and avoid conflicts.
  • Automate your Apex Unit tests and UI Automation testing using FlexDeploy’s Test automation framework.
  • Validate your Salesforce Packages first and schedule the quick deployment (commit the package) in Production.
  • Notify teams before or after completing deployments or on test executions.
  • Fail the release based on test results or code coverages. As a result notify a Developer to fix.
  • Setup manual verifications to ensure quality as required.

FlexDeploy allows you to start a simple or more complex process, so that based on your current process and maturity level you can start and keep enhancing your release process to achieve higher quality and faster releases.

Stay Tuned

In the rest of this series, we’ll continue walking through how you can utilize FlexDeploy with Salesforce and start getting the benefits of a DevOps platform for Continuous Delivery and Release Automation.

FlexDeploy for Salesforce Free Whitepaper

Rama Rimmalapudi

I have been working as a Integration Architect for the past 10 years, with over 17 years of experience in software Architecture, Design, Development, Performance Tuning and production support of Java/J2EE based applications. I have 8+ years of experience designing enterprise applications using Oracle Fusion Middleware, building custom applications using ADF and System Integrations using SOA Suite & MuleSoft. I have extensive knowledge with DevOps, Release Automation, Application Integrations, WebLogic and Coherence in high volume and highly available deployment configurations.

More posts by Rama Rimmalapudi

Leave a Reply

Your email address will not be published. Required fields are marked *