Salesforce
Salesforce
Salesforce
CI/CD
CI/CD
CI/CD
Integration:
Integration:
Integration:
A Quick
A Quick
A Quick
Guide
Guide
Guide












www.bacancytechnology.com
Quick Summary:
Are you looking to ship your salesforce
application quickly and efficiently?
Salesforce CI/CD integration is the perfect
solution for your business. Do you know
how you can integrate CI/CD with
Salesforce? This blog will help you
understand what CI/CD is and how you can
set them up with Salesforce.
Introduction
CI/CD has always been the heart of DevOps,
and now these software engineering
practices have become a real game-changer
for the Salesforce ecosystem. Today,
continuous integration with Salesforce has
become the most talked-about topic in the
cloud platform world. And why not? These
practices allow more reliable development
and release cycles as you build, test, and
ship code faster.


Today, Salesforce has become an integral
part of many large and small organizations
all across the globe. However, it is one of the
most powerful tools but let’s not forget it
has its own challenges. Despite the project
becoming more significant and time
becoming lesser, clients still expect project
delivery on time with advanced features
and functionalities, which is entirely
impossible to achieve by the traditional
salesforce deployment process.
But that doesn’t mean Salesforce can’t do it.
This CRM platform left no stone unturned to
deliver the products with efficiency and
quality. So what’s the solution? Here CI/CD
implementation with Salesforce comes into the
picture.


CI/CD is not a new buzzword; it is one of the
most prominent DevOps practices that
streamline the release cycle by delivering
development more quickly and less risk. To
build, run, and test the salesforce applications
efficiently and confidently, CI/CD is the best
practice to go with.


This blog will guide you through the complete
Salesforce CI/CD integration. But, before diving
into how to set up CI/CD process with
Salesforce, it is essential to understand what
CI/CD is?


So without any further ado, let’s get started
with-
What is
Continuous
Integration?
Many organizations overlap continuous
integration with continuous development,
continuous appointment, and other things. So
here we have described the general definition of
what precisely continuous integration is?


Continuous Integration or CI is a process that
you set up to ensure that every little change you
make to your system is compatible with the rest
of your system. So that when you make changes
to your system, you are going to deploy the
main two parameters of the users in a safe and
reliable environment.


Continuous integration is a way to ensure that
what you are doing will work across the
application. This software development practice
allows developers to integrate their change
codes into a source code repository regularly.
Automated builds and tests run before or after
the developers put new code into the system to
protect the source codes from external threats.
Push the code to the code repository often
(Github, Bitbucket, CodeCommit, etc.)
Testing or build server checks the code as
soon as it is published via codebuild, Jenkins
CI, Circle CI, etc.
The developers get feedback about the tests
and checks whether the codes passed or
failed.
Find bugs early if present and fix them in a
quick turnaround time.
Deliver faster as the codes are tested
Deploy often
In a nutshell, Continuous integration (CI) lets
developers-


CI leads to – “Happier developers, as they’re
unblocked.”
Moving on, let’s see what continuous delivery
is?
What is
Continuous
Delivery?
Continuous delivery is a software
engineering approach in which teams
produce software in short cycles, ensuring
that the software can be released
dependably whenever needed. It also
ensures that deployment happens quickly
because the developers want to move away
from doing one release every three months
to five releases a single day. You can only do
5 releases a day if you have something
continuous deliver. So that means that the
deployment will be fully automated.
How does the
Continuous
delivery
pipeline
work?
The developer will push code often to
the code repository.
Build server will get the code and build
& test it.
And then, the deployment server, after
the build server is done, will get the
build output and can deploy the new
version to the applications server from
V1 to V2 and at a high level.
So this is how continuous delivery works.


Moving on, let’s discuss
How to
integrate CI
with
Salesforce?
To integrate the CI/CD with Salesforce,
many third-party tools are available in the
market from which you can choose the
suitable one matching your business needs.
Salesforce can easily integrate with these
tools, helping you with a smooth and easy
Salesforce CI/CD integration.


Continuous integration
using CircleCI
CircleCI platform automates the confidence
in your code. It builds, tests, and effectively
deploys the software. This platform is a
commonly used integration tool that
integrates with your existing version
system. This is because to push the
incremental updates of your choice to the
environment. This enterprise solution can
be easily installable in your private cloud,
data center, or on-premise tool. It is
available to use for free for a limited time.
Continuous integration
using Jenkins
Jenkins is an open-source implementation
of a Continuous Integration server written
in Java. This server is highly compatible
with multiple languages and can run on
various platforms, including Linux,
Windows, and macOS. If you plan to test the
salesforce applications against scratch org,
you can easily integrate the salesforce DX
into the Jenkins framework and automate
the applications’ testing.
Continuous Integration
with Travis CI
Travis CI is an effective cloud-based
integration service that lets your developer
test and deploy the code confidently. With
Travis CI, you can test your codes in
minutes, you only require to sync your
project with this integration platform, and
it will test your code quickly.
Sample CI Repos for Org
Development Model
With sample CI repos, you can easily clone
your sample repository of the vendor of
your choice. Each repo in sample CI comes
with a unique sample configuration file and
an elaborative README.md with step-wise
information.
Continuous Integration
with Gearset


Gearset is a prominent DevOps tool that
provides a simple, fast, and clicks
configurable solution, making the CI/CD set
up and maintenance highly scalable and
manageable.


In this blog, we will learn to integrate CI/CD
with Salesforce using CircleCI.
What is a CI
pipeline?
If you are a beginner at CircleCI, let us help
you with a quick overview of how CI will
help you improve your development
workflow.


CircleCI is a robust platform that automates
confidence in the code. It lets you build,
test, run and code faster. The CircleCI
pipeline will help you make changes to your
application and test them quickly before
deployment. If your test passes or fails, it
lets you right away. Once you are satisfied
with the code, you can manually or
automatically deploy that changes to your
users.
How to set up
a CI pipeline?
To start creating the CI pipeline, you are
required to set up a few tasks before-


1. Set up a DevOps account
2. Create your self attested SSL certificate
and private key
3. For JWT-based authorization, you need to
create a certificate; Salesforce will keep the
certificate while CircleCI will keep the
private key.
4. Before starting the pipeline, you must
create a connected application, which
connects salesforce instances in the cloud
environment.
To create a connected application, you can
follow the steps available on the Salesforce
site.


1. Store server.crt file with Salesforce
2. Add the server key to CircleCI
3. Markdown the consumer key given by the
developed application


If you want a salesforce application project
hosted by a VCS provider, choose GitHub or
BitBucket. Once you host the project on
GitHub, you can start assembling the
pipeline.
Adding a project to CircleCI
The project is still in a development phase;
to complete the project, you need to-


1. Add a CircleCI config file
2. Authorize your VCS, i.e., GitHub or
BitBucket with CircleCI, and log in
3. You will be redirected to a dashboard
4. At the dashboard, click “add projects,” a
list of projects from your account will be
displayed on your screen
5. Click “Setup project” for your salesforce
application
6. Click “start building.”
If your job fails, don’t worry, it is expected.
Now we are required to add a config file
with the integration and setup environment
variables.


How to add environment
variables?
To add the required environment variables,
follow these steps-


1. You will see a navigation bar, and on the
left of the screen, there will be a list of
projects which you have added earlier to
the CircleCI.
2. You will see a cogwheel next to them.
SFDX_JWT_KEY
SFDX_CONSUMER_KEY
3. Click the cogwheel next to your salesforce
app to get directed onto the settings page.
4. On the settings page, you will see an
option “build settings.”
5. Click the environment variable located
under the build setting.
We have created the consumer key in the
earlier steps. Now we only need to add the
new environment variable with the name
SFDX_CONSUMER_KEY and the value
from Salesforce.


For authentication, you are required to add
the two prominent environment variables:
1. To get the Base64 encoded with the JWT
key, you must navigate the directory to the
self-attested certificate files you have
created in the previous steps.
2. After the navigation, click this command-
base64 server.key
3. The base64 value is encoded, now copy it
and add it to the project’s environment
variables under the JWT key.


Now it’s time to add your config.


Adding config


The CircleCI is authenticated with
Salesforce, which means you can utilize the
salesforce DX apex orb commands in the
config.
1. In the project repository, add a top-level
.circleci folder,
2. Create a config.yml file.
3. Once you have created your config.yml
file, let’s start by copying the included usage
example from the SFDX Apex orb.


version: 2.1
orbs:
apex: circleci/salesforce-apex@x.y
jobs:
install_authenticate:
docker:
- image: cimg/node:14.5
steps:
- checkout
- apex/setup:
defaultusername: user@email.com
- run:
name: Run your SFDX commands
here
command: |
echo "You now have access to the sfdx cli
and may execute commands against it.
https://developer.salesforce.com/docs/atlas
.en-
us.sfdx_cli_reference.meta/sfdx_cli_refere
nce/cli_reference.htm"
workflows:
basic-test:
jobs:
- install_authenticate
To update things in the future, it is best
to set the version of your config.
To define and import the orb packages,
use the orbs stanza.
Visit the orb registry to view the most
up-to-date documentation and import
the most current orb version.
Version 2.1 of CircleCI config is required to
access “orbs.”
After the orb import, you will find the JOB
STANZA with a single job in it.


It is available under the name:
install_authenticate.


And it looks like this-


jobs:
install_authenticate:
Here you can manually define your config
file.


Orbs are available to import in the full
version, but we recommend going with the
minor version. It will help you
automatically choose the patch releases.
Jobs
CircleCI comes with pre-built docker
images. The images have pre-installed
NodeJS, which lets you install the node
version with Salesforce CLI. You do not
need to install the node and npm
individually.


It looks like-


docker:
– image: cimg/node:14.5
Docker image
Workflows are the prominent feature of
CircleCI, which lets you adapt the jobs you
want to run and the run order. If you have a
single job in workflow, you can run it
efficiently.


For instance- Create a single workflow
named basic-test and list the
install_authenticate job.


It looks like-
workflows:
basic-test:
jobs:
– install_authenticate
So like this, you can easily integrate your
Salesforce application with CI/CD. Still, if
you have any queries, feel free to reach out
to an experienced team of salesforce
developers.


Workflows
Are you ready
for Salesforce
CI/CD
Integration
Salesforce Continuous Integration and
Continuous Deployment enables faster
quality software delivery and happy
business customers. So, if you are looking to
take your business to the next level,
salesforce CI/CD integration is the proper
practice.


If you are looking for a helping hand, we are
here to help you. We are a leading salesforce
development company that holds a rich
experience of 9+ years in delivering best-in-
class salesforce solutions. We will help you
with the best implementation, integration,
and Salesforce consulting services no
matter what size of your business.
Thank You
www.bacancytechnology.com

Salesforce cicd integration a quick guide

  • 1.
  • 2.
    Quick Summary: Are youlooking to ship your salesforce application quickly and efficiently? Salesforce CI/CD integration is the perfect solution for your business. Do you know how you can integrate CI/CD with Salesforce? This blog will help you understand what CI/CD is and how you can set them up with Salesforce.
  • 3.
  • 4.
    CI/CD has alwaysbeen the heart of DevOps, and now these software engineering practices have become a real game-changer for the Salesforce ecosystem. Today, continuous integration with Salesforce has become the most talked-about topic in the cloud platform world. And why not? These practices allow more reliable development and release cycles as you build, test, and ship code faster. Today, Salesforce has become an integral part of many large and small organizations all across the globe. However, it is one of the most powerful tools but let’s not forget it has its own challenges. Despite the project becoming more significant and time becoming lesser, clients still expect project delivery on time with advanced features and functionalities, which is entirely impossible to achieve by the traditional salesforce deployment process.
  • 5.
    But that doesn’tmean Salesforce can’t do it. This CRM platform left no stone unturned to deliver the products with efficiency and quality. So what’s the solution? Here CI/CD implementation with Salesforce comes into the picture. CI/CD is not a new buzzword; it is one of the most prominent DevOps practices that streamline the release cycle by delivering development more quickly and less risk. To build, run, and test the salesforce applications efficiently and confidently, CI/CD is the best practice to go with. This blog will guide you through the complete Salesforce CI/CD integration. But, before diving into how to set up CI/CD process with Salesforce, it is essential to understand what CI/CD is? So without any further ado, let’s get started with-
  • 6.
  • 7.
    Many organizations overlapcontinuous integration with continuous development, continuous appointment, and other things. So here we have described the general definition of what precisely continuous integration is? Continuous Integration or CI is a process that you set up to ensure that every little change you make to your system is compatible with the rest of your system. So that when you make changes to your system, you are going to deploy the main two parameters of the users in a safe and reliable environment. Continuous integration is a way to ensure that what you are doing will work across the application. This software development practice allows developers to integrate their change codes into a source code repository regularly. Automated builds and tests run before or after the developers put new code into the system to protect the source codes from external threats.
  • 8.
    Push the codeto the code repository often (Github, Bitbucket, CodeCommit, etc.) Testing or build server checks the code as soon as it is published via codebuild, Jenkins CI, Circle CI, etc. The developers get feedback about the tests and checks whether the codes passed or failed. Find bugs early if present and fix them in a quick turnaround time. Deliver faster as the codes are tested Deploy often In a nutshell, Continuous integration (CI) lets developers- CI leads to – “Happier developers, as they’re unblocked.” Moving on, let’s see what continuous delivery is?
  • 9.
  • 10.
    Continuous delivery isa software engineering approach in which teams produce software in short cycles, ensuring that the software can be released dependably whenever needed. It also ensures that deployment happens quickly because the developers want to move away from doing one release every three months to five releases a single day. You can only do 5 releases a day if you have something continuous deliver. So that means that the deployment will be fully automated.
  • 11.
  • 12.
    The developer willpush code often to the code repository. Build server will get the code and build & test it. And then, the deployment server, after the build server is done, will get the build output and can deploy the new version to the applications server from V1 to V2 and at a high level. So this is how continuous delivery works. Moving on, let’s discuss
  • 13.
  • 14.
    To integrate theCI/CD with Salesforce, many third-party tools are available in the market from which you can choose the suitable one matching your business needs. Salesforce can easily integrate with these tools, helping you with a smooth and easy Salesforce CI/CD integration. Continuous integration using CircleCI CircleCI platform automates the confidence in your code. It builds, tests, and effectively deploys the software. This platform is a commonly used integration tool that integrates with your existing version system. This is because to push the incremental updates of your choice to the environment. This enterprise solution can be easily installable in your private cloud, data center, or on-premise tool. It is available to use for free for a limited time.
  • 15.
    Continuous integration using Jenkins Jenkinsis an open-source implementation of a Continuous Integration server written in Java. This server is highly compatible with multiple languages and can run on various platforms, including Linux, Windows, and macOS. If you plan to test the salesforce applications against scratch org, you can easily integrate the salesforce DX into the Jenkins framework and automate the applications’ testing.
  • 16.
    Continuous Integration with TravisCI Travis CI is an effective cloud-based integration service that lets your developer test and deploy the code confidently. With Travis CI, you can test your codes in minutes, you only require to sync your project with this integration platform, and it will test your code quickly. Sample CI Repos for Org Development Model With sample CI repos, you can easily clone your sample repository of the vendor of your choice. Each repo in sample CI comes with a unique sample configuration file and an elaborative README.md with step-wise information.
  • 17.
    Continuous Integration with Gearset Gearsetis a prominent DevOps tool that provides a simple, fast, and clicks configurable solution, making the CI/CD set up and maintenance highly scalable and manageable. In this blog, we will learn to integrate CI/CD with Salesforce using CircleCI.
  • 18.
    What is aCI pipeline?
  • 19.
    If you area beginner at CircleCI, let us help you with a quick overview of how CI will help you improve your development workflow. CircleCI is a robust platform that automates confidence in the code. It lets you build, test, run and code faster. The CircleCI pipeline will help you make changes to your application and test them quickly before deployment. If your test passes or fails, it lets you right away. Once you are satisfied with the code, you can manually or automatically deploy that changes to your users.
  • 20.
    How to setup a CI pipeline?
  • 21.
    To start creatingthe CI pipeline, you are required to set up a few tasks before- 1. Set up a DevOps account 2. Create your self attested SSL certificate and private key 3. For JWT-based authorization, you need to create a certificate; Salesforce will keep the certificate while CircleCI will keep the private key. 4. Before starting the pipeline, you must create a connected application, which connects salesforce instances in the cloud environment. To create a connected application, you can follow the steps available on the Salesforce site. 1. Store server.crt file with Salesforce 2. Add the server key to CircleCI
  • 22.
    3. Markdown theconsumer key given by the developed application If you want a salesforce application project hosted by a VCS provider, choose GitHub or BitBucket. Once you host the project on GitHub, you can start assembling the pipeline. Adding a project to CircleCI The project is still in a development phase; to complete the project, you need to- 1. Add a CircleCI config file 2. Authorize your VCS, i.e., GitHub or BitBucket with CircleCI, and log in 3. You will be redirected to a dashboard 4. At the dashboard, click “add projects,” a list of projects from your account will be displayed on your screen
  • 23.
    5. Click “Setupproject” for your salesforce application 6. Click “start building.” If your job fails, don’t worry, it is expected. Now we are required to add a config file with the integration and setup environment variables. How to add environment variables? To add the required environment variables, follow these steps- 1. You will see a navigation bar, and on the left of the screen, there will be a list of projects which you have added earlier to the CircleCI. 2. You will see a cogwheel next to them.
  • 24.
    SFDX_JWT_KEY SFDX_CONSUMER_KEY 3. Click thecogwheel next to your salesforce app to get directed onto the settings page. 4. On the settings page, you will see an option “build settings.” 5. Click the environment variable located under the build setting. We have created the consumer key in the earlier steps. Now we only need to add the new environment variable with the name SFDX_CONSUMER_KEY and the value from Salesforce. For authentication, you are required to add the two prominent environment variables:
  • 25.
    1. To getthe Base64 encoded with the JWT key, you must navigate the directory to the self-attested certificate files you have created in the previous steps. 2. After the navigation, click this command- base64 server.key 3. The base64 value is encoded, now copy it and add it to the project’s environment variables under the JWT key. Now it’s time to add your config. Adding config The CircleCI is authenticated with Salesforce, which means you can utilize the salesforce DX apex orb commands in the config.
  • 26.
    1. In theproject repository, add a top-level .circleci folder, 2. Create a config.yml file. 3. Once you have created your config.yml file, let’s start by copying the included usage example from the SFDX Apex orb. version: 2.1 orbs: apex: circleci/salesforce-apex@x.y jobs: install_authenticate: docker: - image: cimg/node:14.5 steps: - checkout - apex/setup: defaultusername: user@email.com - run: name: Run your SFDX commands here command: |
  • 27.
    echo "You nowhave access to the sfdx cli and may execute commands against it. https://developer.salesforce.com/docs/atlas .en- us.sfdx_cli_reference.meta/sfdx_cli_refere nce/cli_reference.htm" workflows: basic-test: jobs: - install_authenticate To update things in the future, it is best to set the version of your config. To define and import the orb packages, use the orbs stanza. Visit the orb registry to view the most up-to-date documentation and import the most current orb version. Version 2.1 of CircleCI config is required to access “orbs.”
  • 28.
    After the orbimport, you will find the JOB STANZA with a single job in it. It is available under the name: install_authenticate. And it looks like this- jobs: install_authenticate: Here you can manually define your config file. Orbs are available to import in the full version, but we recommend going with the minor version. It will help you automatically choose the patch releases. Jobs
  • 29.
    CircleCI comes withpre-built docker images. The images have pre-installed NodeJS, which lets you install the node version with Salesforce CLI. You do not need to install the node and npm individually. It looks like- docker: – image: cimg/node:14.5 Docker image
  • 30.
    Workflows are theprominent feature of CircleCI, which lets you adapt the jobs you want to run and the run order. If you have a single job in workflow, you can run it efficiently. For instance- Create a single workflow named basic-test and list the install_authenticate job. It looks like- workflows: basic-test: jobs: – install_authenticate So like this, you can easily integrate your Salesforce application with CI/CD. Still, if you have any queries, feel free to reach out to an experienced team of salesforce developers. Workflows
  • 31.
    Are you ready forSalesforce CI/CD Integration
  • 32.
    Salesforce Continuous Integrationand Continuous Deployment enables faster quality software delivery and happy business customers. So, if you are looking to take your business to the next level, salesforce CI/CD integration is the proper practice. If you are looking for a helping hand, we are here to help you. We are a leading salesforce development company that holds a rich experience of 9+ years in delivering best-in- class salesforce solutions. We will help you with the best implementation, integration, and Salesforce consulting services no matter what size of your business.
  • 33.