Built-in checks
Import github.com/davideimola/worky/checks for pre-built check functions.
File system
Section titled “File system”FileExists(path string) func(context.Context) error
Section titled “FileExists(path string) func(context.Context) error”Passes if the file at path exists.
checks.FileExists("done.txt")checks.FileExists("/etc/hosts")DirExists(path string) func(context.Context) error
Section titled “DirExists(path string) func(context.Context) error”Passes if the directory at path exists.
checks.DirExists("output/")checks.DirExists("src/components")FileContains(path, text string) func(context.Context) error
Section titled “FileContains(path, text string) func(context.Context) error”Passes if the file at path contains the substring text.
checks.FileContains("hello.txt", "Hello, World!")checks.FileContains("config.yaml", "replicas: 3")FileMatchesRegex(path, pattern string) func(context.Context) error
Section titled “FileMatchesRegex(path, pattern string) func(context.Context) error”Passes if the file at path matches the regular expression pattern. If pattern is not a valid regular expression, the check returns an error instead of panicking.
checks.FileMatchesRegex("output.json", `"status":\s*"ok"`)Environment variables
Section titled “Environment variables”EnvVarSet(name string) func(context.Context) error
Section titled “EnvVarSet(name string) func(context.Context) error”Passes if the environment variable name is set and non-empty.
checks.EnvVarSet("KUBECONFIG")checks.EnvVarSet("AWS_REGION")EnvVarEquals(name, value string) func(context.Context) error
Section titled “EnvVarEquals(name, value string) func(context.Context) error”Passes if the environment variable name equals value.
checks.EnvVarEquals("STAGE", "production")Commands
Section titled “Commands”CommandSucceeds(name string, args ...string) func(context.Context) error
Section titled “CommandSucceeds(name string, args ...string) func(context.Context) error”Passes if the command exits with code 0. Respects context cancellation and timeout.
checks.CommandSucceeds("docker", "info")checks.CommandSucceeds("kubectl", "cluster-info")checks.CommandSucceeds("node", "--version")CommandOutputContains(text, name string, args ...string) func(context.Context) error
Section titled “CommandOutputContains(text, name string, args ...string) func(context.Context) error”Passes if the command exits 0 and its combined output contains text. Respects context cancellation and timeout.
checks.CommandOutputContains("Running", "kubectl", "get", "pods", "-n", "default")checks.CommandOutputContains("v1.", "kubectl", "version", "--client")Network
Section titled “Network”PortOpen(host string, port int) func(context.Context) error
Section titled “PortOpen(host string, port int) func(context.Context) error”Passes if a TCP connection to host:port succeeds within 3 seconds. Respects context cancellation.
checks.PortOpen("localhost", 5432) // PostgreSQLchecks.PortOpen("localhost", 6379) // RedisHTTPStatus(url string, expectedStatus int) func(context.Context) error
Section titled “HTTPStatus(url string, expectedStatus int) func(context.Context) error”Passes if a GET request to url returns expectedStatus. Respects context cancellation and timeout.
checks.HTTPStatus("http://localhost:8080/health", 200)checks.HTTPStatus("http://localhost:3000", 200)HTTPBodyContains(url, text string) func(context.Context) error
Section titled “HTTPBodyContains(url, text string) func(context.Context) error”Passes if the body of a GET request to url contains text. Respects context cancellation and timeout.
checks.HTTPBodyContains("http://localhost:8080/api/status", `"ok"`)