github.com/Benchkram/bob@v0.0.0-20220321080157-7c8f3876e225/bob/build.go (about)

     1  package bob
     2  
     3  import (
     4  	"context"
     5  	"errors"
     6  
     7  	"github.com/Benchkram/bob/bob/playbook"
     8  	"github.com/Benchkram/errz"
     9  )
    10  
    11  var (
    12  	ErrNoRebuildRequired = errors.New("no rebuild required")
    13  )
    14  
    15  // Build a task and it's dependecies.
    16  func (b *B) Build(ctx context.Context, taskname string) (err error) {
    17  	defer errz.Recover(&err)
    18  
    19  	aggregate, err := b.Aggregate()
    20  	errz.Fatal(err)
    21  
    22  	b.PrintVersionCompatibility(aggregate)
    23  
    24  	playbook, err := aggregate.Playbook(
    25  		taskname,
    26  		playbook.WithCachingEnabled(b.enableCaching),
    27  	)
    28  	errz.Fatal(err)
    29  
    30  	err = playbook.Build(ctx)
    31  	errz.Fatal(err)
    32  
    33  	return err
    34  }