Skip to content

Make Build Preparation an async process

What does this MR do and why?

In support of the Admission Controller and after discussion at #132770 the BuildPrerequisite process needs to become async to allow for call and response to/from the Admission Controller.

This MR implements this by introducing a worker to handle driving each job perquisite asynchronously, a service to handle the completion of the workers, and the requisite endpoint in the Build model to handle the new workflow, as well as updating the logic of the Prerequisite classes to support this model.

How to set up and validate locally

  1. In rails console enable the experiment fully
    Feature.enable(:admission_controller_hook)
  2. Run a CI job of any kind. This MR is a functional No-op so nothing should change.

@ayufan @ajwalker This is a first pass at making the prereq process async as per #132770

Related to #378322

Merge request reports