Skip to content

Persist VMs between run calls

In buildbtw's gitlab pipeline workflow, the custom runner executor run stage is called multiple times, once for each stage. Each time it is called, we need to run the script gitlab generates for us in the same VM as in the previous stages.

  • Optionally persist the disk state of a VM after vmexec run has completed
  • Provide a way for vmexec run to output some kind of reference to the persisted VM disk state
  • Allow passing that reference in a subsequent call to vmexec run to run the given command on top of the persisted state
  • Allow some kind of cleanup / deletion of persisted state that is no longer needed
  • Allow listing persisted VM states

This will require some careful design to make it not suck. For now, we can work around this issue in buildbtw, so take your time.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information