| Developers Guide

| Developers Guide

  • Docs
  • API
  • Help
  • Blog

›Advanced Guides

Notes on Versions Released

  • Migrating & Updating
  • Updating to New Releases

Getting Started

  • Introduction
  • Installation
  • Quick Start

Main Concepts

  • Overview
  • Glossary
  • CMS
  • Dialog Engine
  • Actions & Hooks
  • Memory
  • Modules
  • NLU
  • Emulator

Advanced Guides

  • Debug
  • Configuration
  • Authentication Methods
  • Custom Module
  • Performances
  • Hosting
  • Version Control
  • Development Pipelines
  • Clustering

Channels

  • Website Embedding
  • Facebook Messenger
  • Telegram
  • Microsoft Teams
  • Converse API
  • Slack
  • Smooch (Sunshine Conversations)
  • FAQ

Tutorials

  • Deploying a cluster on Digital Ocean
  • How to act on an intent
  • Acting Proactively
  • Using Carousel Postback
  • How to use Slot Skill
  • How to use Call API Skill
  • Calling an API in a Custom Action
  • Shortlinks
  • Connecting your bot with your existing backend
  • Supported databases
  • Timeouts
  • Human in the loop
  • Jump To
  • Inter-bot Communication / Delegation
  • Contextual FAQ
  • Authenticate a user against a 3rd Party OAuth
  • Listening for file changes
  • Using a 3rd party NLU
  • Using the UiPath integration for Botpress

Pro Edition

  • About
  • Licensing
  • Configuring RBAC
  • Monitoring & Alerting
  • Bot Pipelines
  • Internationalization

Development Pipelines

Workflow

A best practice is to keep the changes of your bots in your prefered Source Control Management tool (e.g Git) and always deploy the master branch in production. Once deployed, you can regularly pull changes and apply them to your SCM or revert them at any moment. With this tip you can harness the power of your SCM for branches, merge conflicted files, review changes and create revisions.

Fine, now what if you have a more complex deployment pipeline with a(or multiple) staging environment with pending changes on each environment? That's what we'll learn next.

Development Pipelines

In this section, we will use Git to sync changes between 2 environments and promote an environment (i.e. promote staging to production).

Given a pipeline with 3 environments, development, staging and production. Let's say there are some changes both on production and staging and you want to promote staging to production. What we want to do is the following:

  1. Create a merge conflict so we can choose what we want in a merge conflict tool.
  2. Resolve conflicts (i.e merge staging into production)
  3. Push the results to master so it can be deployed to your production environment.

First, create a branch and sync it with the production environment:

git checkout master && git checkout -b prod-sync
./bp pull --url {PROD_SERVER_URL} --authToken {YOUR_AUTH_TOKEN} --targetDir {TARGET_DIRECTORY}
git commit -am 'sync prod'

Repeat the process with staging environment:

git checkout master && git checkout -b staging-sync
./bp pull --url {STAGING_SERVER_URL} --authToken {YOUR_AUTH_TOKEN} --targetDir {TARGET_DIRECTORY}
git commit -am 'sync staging'

Then merge the staging changes into the prod changes:

git checkout prod-sync && git merge staging-sync

This will create a merge conflict, use your prefered merge tool to review the changes and resolve the conflicts. Once its done, you will be able to publish your branch and create a pull request (if your hosted git allows it) and merge it to master.

Once your master branch is up-to-date, you'll be able to push the changes to production with:

./bp push --url {PROD_SERVER_URL} --authToken {YOUR_AUTH_TOKEN} --targetDir {TARGET_DIRECTORY}

With these quick tips you can now promote any environment changes to any stage in your deployment pipeline.

← Version ControlClustering →
  • Workflow
  • Development Pipelines
| Developers Guide
Docs
Getting Started (or other categories)Guides (or other categories)API Reference (or other categories)
Community
User ShowcaseStack OverflowProject ChatTwitter
More
BlogGitHubStar
Facebook Open Source
Copyright © 2021 Botpress Inc.