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 }