diff options
Diffstat (limited to 'magefile.go')
| -rw-r--r-- | magefile.go | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/magefile.go b/magefile.go new file mode 100644 index 00000000..06dc0251 --- /dev/null +++ b/magefile.go @@ -0,0 +1,68 @@ +//go:build mage +// +build mage + +package main + +import ( + "context" + "path/filepath" + + "github.com/magefile/mage/mg" + "github.com/magefile/mage/sh" + "github.com/xlgmokha/x/pkg/x" +) + +// Default target to run when none is specified +// If not set, running mage will list available targets +var Default = Servers + +// Run the Authzd Service +func Authzd() error { + env := map[string]string{ + "BIND_ADDR": ":8080", + } + return sh.RunWithV(env, "go", "run", "./cmd/authzd/main.go") +} + +// Start NATS server +func Nats() error { + return sh.RunV( + "nats-server", + "--addr=127.0.0.1", + "--port=4222", + "--http_port=8222", + "--pid=tmp/pids/nats.pid", + "--jetstream", + "--store_dir=tmp/nats/store", + ) +} + +// Generate gRPC from protocal buffers +func Protos() error { + for _, file := range x.Must(filepath.Glob("./protos/*.proto")) { + if err := sh.RunV( + "protoc", + "--proto_path=./protos", + "--go_out=.", + "--twirp_out=.", + file, + ); err != nil { + return err + } + } + + return nil +} + +// Run All the servers +func Servers(ctx context.Context) { + mg.CtxDeps(ctx, Nats, Authzd) +} + +// Run the end to end tests +func Test(ctx context.Context) error { + mg.CtxDeps(ctx, func() error { + return sh.RunV("go", "clean", "-testcache") + }) + return sh.RunV("go", "test", "-shuffle=on", "-v", "./...") +} |
