package main import ( "fmt" "github.com/goyek/goyek" ) const zerologLintVer = "1.24.0" func main() { flow().Main() } func flow() *goyek.Flow { flow := &goyek.Flow{} fmt := flow.Register(taskFmt) test := flow.Register(taskTest) vet := flow.Register(taskVet) lint := flow.Register(taskLint) flow.DefaultTask = flow.Register(goyek.Task{ Name: "all", Usage: "Run all flows", Deps: []goyek.RegisteredTask{ fmt, lint, test, vet, }, }) return flow } var taskFmt = goyek.Task{ Name: "fmt", Usage: "go fmt", Action: func(tf *goyek.TF) { if err := tf.Cmd("go", "fmt", "./...").Run(); err != nil { tf.Fatal(err) } }, } var taskTest = goyek.Task{ Name: "test", Usage: "go test", Action: func(tf *goyek.TF) { if err := tf.Cmd("go", "test", "-race", "./...").Run(); err != nil { tf.Fatal(err) } }, } var taskVet = goyek.Task{ Name: "vet", Usage: "go vet", Action: func(tf *goyek.TF) { if err := tf.Cmd("go", "vet", "-race", "./...").Run(); err != nil { tf.Fatal(err) } }, } var taskLint = goyek.Task{ Name: "lint", Usage: "Run linter(s)", Action: func(tf *goyek.TF) { if err := tf.Cmd("go", "run", fmt.Sprintf("github.com/rs/zerolog/cmd/lint@v%s", zerologLintVer), ".").Run(); err != nil { tf.Fatal(err) } }, }