github.com/benchkram/bob@v0.0.0-20240314204020-b7a57f2f9be9/test/e2e/artifacts/artifactutils_test.go (about) 1 package artifactstest 2 3 import ( 4 "context" 5 "os" 6 "path/filepath" 7 8 "github.com/benchkram/bob/bob" 9 "github.com/benchkram/bob/bob/playbook" 10 "github.com/benchkram/errz" 11 ) 12 13 // artifactRemove a artifact from the local artifact store 14 func artifactRemove(id string) error { 15 fs, err := os.ReadDir(artifactDir) 16 if err != nil { 17 return err 18 } 19 for _, f := range fs { 20 if f.Name() == id { 21 err = os.Remove(filepath.Join(artifactDir, f.Name())) 22 if err != nil { 23 return err 24 } 25 } 26 } 27 return nil 28 } 29 30 // artifactExists checks if a artifact exists in the local artifact store 31 func artifactExists(id string) (exist bool, _ error) { 32 fs, err := os.ReadDir(artifactDir) 33 if err != nil { 34 return false, err 35 } 36 37 for _, f := range fs { 38 if f.Name() == id { 39 exist = true 40 break 41 } 42 } 43 44 return exist, nil 45 } 46 47 // targetChanged appends a string to a target 48 func targetChange(dir string) error { 49 f, err := os.OpenFile(dir, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600) 50 if err != nil { 51 return err 52 } 53 _, err = f.WriteString("change_the_target") 54 if err != nil { 55 return err 56 } 57 return f.Close() 58 } 59 60 // buildTask and returns it's state 61 func buildTask(b *bob.B, taskname string) (_ *playbook.Status, err error) { 62 defer errz.Recover(&err) 63 64 aggregate, err := b.Aggregate() 65 errz.Fatal(err) 66 67 err = b.Nix().BuildNixDependenciesInPipeline(aggregate, taskname) 68 errz.Fatal(err) 69 70 pb, err := aggregate.Playbook(taskname) 71 errz.Fatal(err) 72 73 err = pb.Build(context.Background()) 74 errz.Fatal(err) 75 76 return pb.TaskStatus(taskname) 77 }