Documentation
¶
Overview ¶
Package client builds an authenticated Hostim API client from resolved config and maps API error responses (including 429 rate limiting) into Go errors.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrBuildFailed = errors.New("build failed")
ErrBuildFailed is returned by PollBuild when the build reaches "failed".
var ErrDeployFailed = errors.New("deploy failed")
ErrDeployFailed is returned by PollBuild when a build-less (docker image) deploy cannot become healthy, e.g. the image can't be pulled.
Functions ¶
Types ¶
type APIError ¶
type APIError struct {
Status int
Code string // GenericMessage.error, when present
Message string // GenericMessage.message, when present
}
APIError is a structured error built from a non-2xx API response.
type BuildResult ¶
type BuildResult struct {
BuildStatus api.AppStatusBuildStatus
RuntimeStatus api.AppStatusRuntimeStatus
Status *api.AppStatus
}
BuildResult is the terminal outcome of a deploy poll.
func PollBuild ¶
func PollBuild( ctx context.Context, c *api.ClientWithResponses, project, app string, interval time.Duration, expectBuild bool, onTick func(*api.AppStatus), ) (BuildResult, error)
PollBuild polls an app's status until it reaches a terminal state or the context is cancelled. onTick, if non-nil, is called with each observed status so callers can render progress.
expectBuild selects what "terminal" means:
- true (git source): wait for buildStatus to reach succeeded/failed. A git deploy always runs a build, so the build outcome is the meaningful signal.
- false (docker image source): there is no build phase, so buildStatus stays empty and the app goes straight to running. Wait for runtimeStatus instead: running is success, imagePullBackoff is a definitive failure. Transient states (pending/crashing) keep polling until running or timeout.
It returns ErrBuildFailed / ErrDeployFailed (wrapped) on failure so callers can exit non-zero.