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  }