Allow internal state to be stored externally for persistence across restarts
Description
This branch implements persisting the internal state of BuildGrid across restarts as described in #175 (closed).
This is based/dependent on the sotk/smart-bot-calls branch which has its own MR (!181 (merged)), since the behaviour implemented in that branch will be needed for a sensible solution to the scalability part of this work anyway.
Changes proposed in this merge request:
- Allow jobs to be created with specific state, rather than always from scratch
- Add an interface for interacting with a data store in a generic way
- Add an SQLAlchemy-based implementation of that
- Add alembic for managing database migrations
- Reload previous state when starting BuildGrid
- Add tests for the new functionality
This merge request, when merged, will address issue/bug:
Edited by Adam Coldrick