Stampede is a multi-component system that has only a couple of required components to function, and additional components that provide additional functionality.
The system requires at least Node v8. It can run on any system that node can run on.
Redis is the core of the system to provide a cache for the components to use while operating, and the queues that allow components to communicate with each other.
stampede-server app provides the integration with GitHub to receive events that trigger automations to happen. Each stampede instance should have a single
stampede-server app running.
At least one
stampede-worker app should be running as well. The workers are the components that execute the automation tasks, so at least one worker has to be available for running tasks. The
stampede-server communicate with each other via Redis queues. Many worker instances can be configured to provide as much scale as needed. While each worker can only read from a single queue, you can configure many workers to service the same queue. And you can also configure as many queues as needed to provide a finely tuned system as required.
stampede-cli is a command line application used to configure parts of the system. Admins and build engineers can use the cli to add/configure the tasks that the system uses. It can also be used to monitor the current activity happening on the server.
If you are using the
stampede-portal component (detailed below), you will need to configure a postgres instance. Details of the builds and tasks that are executing on the stampede system are stored in the database and are used for troubleshooting and reporting on activity on the system.
stampede-portal app can be instantiated to provide a web interface and activity storage into the postgres database. With the portal, admins can configure the system, monitor the current activity and look at the historical details of build and task execution. The portal receives notifications from the
stampede-server and will store the details into the postgres database. The portal is also responsible for hosting the REST API that the mobile app uses.
A mobile app is available that provides many of the same functions as the portal, just in a native mobile app instead. It requires an instance of the
stampede-portal available as that is where the REST API is hosted. The mobile app also has more detailed live views of the currently executing tasks and worker details that can be used to get quick at-a-glance status of the system.