update

package
v0.17.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2026 License: AGPL-3.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrConcurrent = errors.New("another update is already running")

Functions

func Activate

func Activate(releaseRoot, releaseDir string) error

func NewerVersion

func NewerVersion(candidate, current string) bool

func PruneOldReleases

func PruneOldReleases(releaseRoot string, keep ...string) error

func Run

func Run(ctx context.Context, jobPath string) error

Types

type Job

type Job struct {
	ReleaseRoot       string `json:"release_root"`
	HerdrBin          string `json:"herdr_bin"`
	TargetVersion     string `json:"target_version"`
	TargetRevision    string `json:"target_revision"`
	StatePath         string `json:"state_path"`
	HealthURL         string `json:"health_url"`
	DeployAppFirst    bool   `json:"deploy_app_first,omitempty"`
	ExpectedAppOrigin string `json:"expected_app_origin,omitempty"`
}

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(releaseRoot, runtimeDir, herdrBin, version, revision, healthURL string) *Manager

func (*Manager) Check

func (m *Manager) Check(ctx context.Context) State

func (*Manager) Schedule

func (m *Manager) Schedule(
	ctx context.Context,
	expectedVersion, expectedRevision string,
	deployAppFirst bool,
	expectedAppOrigin string,
) (string, State, error)

func (*Manager) State

func (m *Manager) State() State

type State

type State struct {
	State             string `json:"state"`
	CurrentVersion    string `json:"current_version,omitempty"`
	CurrentRevision   string `json:"current_revision,omitempty"`
	AvailableVersion  string `json:"available_version,omitempty"`
	AvailableRevision string `json:"available_revision,omitempty"`
	UpstreamVersion   string `json:"upstream_version,omitempty"`
	UpstreamRevision  string `json:"upstream_revision,omitempty"`
	TargetVersion     string `json:"target_version,omitempty"`
	TargetRevision    string `json:"target_revision,omitempty"`
	Target            string `json:"target,omitempty"`
	CheckedAt         int64  `json:"checked_at,omitempty"`
	StartedAt         string `json:"started_at,omitempty"`
	FinishedAt        string `json:"finished_at,omitempty"`
	Mode              string `json:"mode,omitempty"`
	Eligible          bool   `json:"eligible"`
	CanInstall        bool   `json:"can_install"`
	Reason            string `json:"reason,omitempty"`
	Error             string `json:"error,omitempty"`
}

type Worker

type Worker struct {
	Prepare func(context.Context, Job) (stagedRelease, error)
	Deploy  func(context.Context, Job, stagedRelease) error
	Install func(context.Context, Job) error
	Verify  func(context.Context, string, relayrelease.Manifest) error
}

func (Worker) Run

func (w Worker) Run(ctx context.Context, jobPath string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL