Deploying
PipelineBot is a Probot application that responds to events from GitHub and triggers tasks (workflows) 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.