Search in sources :

Example 1 with Pipeline

use of build.buildfarm.worker.Pipeline in project bazel-buildfarm by bazelbuild.

the class Worker method start.

public void start() throws InterruptedException {
    try {
        Files.createDirectories(root);
        fileCache.start(/* skipLoad= */
        false);
    } catch (IOException e) {
        logger.log(SEVERE, "error starting file cache", e);
        return;
    }
    OperationQueueClient oq = new OperationQueueClient(operationQueueInstance, config.getPlatform(), config.getExecutionPoliciesList());
    Instance acInstance = newStubInstance(config.getActionCache(), casInstance.getDigestUtil());
    WorkerContext context = new OperationQueueWorkerContext(config, casInstance, acInstance, oq, uploader, fileCache, execOwner, root, retrier);
    PipelineStage completeStage = new PutOperationStage((operation) -> oq.deactivate(operation.getName()));
    PipelineStage reportResultStage = new ReportResultStage(context, completeStage, completeStage);
    PipelineStage executeActionStage = new ExecuteActionStage(context, reportResultStage, completeStage);
    PipelineStage inputFetchStage = new InputFetchStage(context, executeActionStage, new PutOperationStage(oq::requeue));
    PipelineStage matchStage = new MatchStage(context, inputFetchStage, completeStage);
    pipeline = new Pipeline();
    // pipeline.add(errorStage, 0);
    pipeline.add(matchStage, 4);
    pipeline.add(inputFetchStage, 3);
    pipeline.add(executeActionStage, 2);
    pipeline.add(reportResultStage, 1);
    pipeline.start();
    // uninterruptable
    pipeline.join();
    if (Thread.interrupted()) {
        throw new InterruptedException();
    }
    stop();
}
Also used : ExecuteActionStage(build.buildfarm.worker.ExecuteActionStage) PipelineStage(build.buildfarm.worker.PipelineStage) StubInstance(build.buildfarm.instance.stub.StubInstance) Instance(build.buildfarm.instance.Instance) InputFetchStage(build.buildfarm.worker.InputFetchStage) IOException(java.io.IOException) MatchStage(build.buildfarm.worker.MatchStage) Pipeline(build.buildfarm.worker.Pipeline) PutOperationStage(build.buildfarm.worker.PutOperationStage) WorkerContext(build.buildfarm.worker.WorkerContext) ReportResultStage(build.buildfarm.worker.ReportResultStage)

Aggregations

Instance (build.buildfarm.instance.Instance)1 StubInstance (build.buildfarm.instance.stub.StubInstance)1 ExecuteActionStage (build.buildfarm.worker.ExecuteActionStage)1 InputFetchStage (build.buildfarm.worker.InputFetchStage)1 MatchStage (build.buildfarm.worker.MatchStage)1 Pipeline (build.buildfarm.worker.Pipeline)1 PipelineStage (build.buildfarm.worker.PipelineStage)1 PutOperationStage (build.buildfarm.worker.PutOperationStage)1 ReportResultStage (build.buildfarm.worker.ReportResultStage)1 WorkerContext (build.buildfarm.worker.WorkerContext)1 IOException (java.io.IOException)1