For a fully guided walkthrough of setting up and configuring continuous integration using scratch orgs and Salesforce CLI, see the Continuous Integration Using Salesforce DX Trailhead module.
This repository shows how to successfully set up deploying to non-scratch orgs (sandbox or production) with Travis CI. We make a few assumptions in this README. Continue only if you have completed these critical configuration prerequisites.
- You know how to set up your GitHub repository with Travis CI. (Need help? See the Travis CI Getting Started guide.)
- You've installed the Travis CLI.
- You have properly set up JWT-based authorization flow (headless). We recommend using these steps for generating your self-signed SSL certificate.
-
Fork this repo to your GitHub account using the fork link at the top of the page.
-
Clone your forked repo locally:
git clone https://github.com/<git_username>/sfdx-travisci-org.git
-
Make sure that you have Salesforce CLI installed. Run
sfdx force --help
and confirm you see the command output. If you don't have it installed, you can download and install it from here. -
Set up a JWT-based auth flow for the target orgs that you want to deploy to. This step creates a
server.key
file that is used in subsequent steps. (https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_jwt_flow.htm) -
Confirm that you can perform a JWT-based auth to the target orgs:
sfdx auth:jwt:grant --clientid <your_consumer_key> --jwtkeyfile server.key --username <your_username>
Note: For more info on setting up JWT-based auth, see Authorize an Org Using the JWT-Based Flow in the Salesforce DX Developer Guide.
-
Set your target
Consumer Key
andUsername
using the Travis CLI. Note that this username is the username that you use to access the target org.travis env set USERNAME <your_username> travis env set CONSUMERKEY <your_consumer_key>
-
From your JWT-Based connected app on Salesforce, retrieve the generated
Consumer Key
. -
Locate the generated
server.key
and keep track of its location. -
Open the
.travis.yml
file and remove the first line that starts withopenssl ...
, then save the file. -
From the root folder of your local project, encrypt your
server.key
value:cd your_project_location
travis encrypt-file your_key_location/server.key assets/server.key.enc --add
This step replaces the existing
server.key.enc
with your encrypted version. -
Commit the updated
.travis.yml
andserver.key.enc
files.
Now you're ready to go! When you commit and push a change, your change kicks off a Travis CI build.
Enjoy!
If you find any issues or opportunities for improving this repository, fix them! Feel free to contribute to this project by forking this repository and making changes to the content. Once you've made your changes, share them back with the community by sending a pull request. See How to send pull requests for more information about contributing to GitHub projects.
If you find any issues with this demo that you can't fix, feel free to report them in the issues section of this repository.