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:
- DevOps for Salesforce
- Source Control your Salesforce Changes
- Deploy Salesforce Apps and Metadata Objects
- Build and Deploy Salesforce DX apps
- Unit Test and Test Automation for Your Salesforce
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.
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.
Build Salesforce Package
Once you have created the Package, you can click on the Build button or 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 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.
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.
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.
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.
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.
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.