Deploying
Deliverybot is a Probot application that responds to events from GitHub and triggers deployments based on actions in the application and check status events from GitHub.
It requires storage providers to be implemented as well as deployment infrastructure to deploy the code. The following deployment targets are implemented already to get you started quickly:
Deployment targets
Building A deployment target
Building a deployment target requires implementing a set of services defined in
@deliverybot/core and then providing an HTTP server implementation
that allows Deliverybot to receive HTTP traffic.
The @deliverybot/run package provides a local implementation for
spinning up services and the HTTP interface for local development. Use this
package as a starting point.
The load function exported from @deliverybot/core takes the services
you implement along with the apps which provide the main functionality to give
back a probot and express object to wire up to your infrastructure. A basic
example of booting Deliverybot:
import { load, Options, localServices } from "@deliverybot/core";
import { apps } from "@deliverybot/app";
const options: Options = { ... };
load(localServices(), apps, options);
The main thing that you will need to replace when deploying the application is the services implementation. The services file provides the interfaces required by Deliverybot for your infrastructure.
Extending functionality
As mentioned the apps argument is where all of the functionality is wired up.
You can easily extend Deliverybot with your own implementations and services
by adding an app into the load array.
@deliverybot/core provides information and documentation on wiring up
a new app for providing additional functionality.