package backend type ( // Config defines the runtime configuration of a pipeline. Config struct { Stages []*Stage `json:"pipeline"` // pipeline stages Networks []*Network `json:"networks"` // network definitions Volumes []*Volume `json:"volumes"` // volume definitions Secrets []*Secret `json:"secrets"` // secret definitions } // Stage denotes a collection of one or more steps. Stage struct { Name string `json:"name,omitempty"` Alias string `json:"alias,omitempty"` Steps []*Step `json:"steps,omitempty"` } // Step defines a container process. Step struct { Name string `json:"name"` Alias string `json:"alias,omitempty"` Image string `json:"image,omitempty"` Pull bool `json:"pull,omitempty"` Detached bool `json:"detach,omitempty"` Privileged bool `json:"privileged,omitempty"` WorkingDir string `json:"working_dir,omitempty"` Environment map[string]string `json:"environment,omitempty"` Labels map[string]string `json:"labels,omitempty"` Entrypoint []string `json:"entrypoint,omitempty"` Command []string `json:"command,omitempty"` ExtraHosts []string `json:"extra_hosts,omitempty"` Volumes []string `json:"volumes,omitempty"` Tmpfs []string `json:"tmpfs,omitempty"` Devices []string `json:"devices,omitempty"` Networks []Conn `json:"networks,omitempty"` DNS []string `json:"dns,omitempty"` DNSSearch []string `json:"dns_search,omitempty"` MemSwapLimit int64 `json:"memswap_limit,omitempty"` MemLimit int64 `json:"mem_limit,omitempty"` ShmSize int64 `json:"shm_size,omitempty"` CPUQuota int64 `json:"cpu_quota,omitempty"` CPUShares int64 `json:"cpu_shares,omitempty"` CPUSet string `json:"cpu_set,omitempty"` OnFailure bool `json:"on_failure,omitempty"` OnSuccess bool `json:"on_success,omitempty"` AuthConfig Auth `json:"auth_config,omitempty"` NetworkMode string `json:"network_mode,omitempty"` IpcMode string `json:"ipc_mode,omitempty"` Sysctls map[string]string `json:"sysctls,omitempty"` } // Auth defines registry authentication credentials. Auth struct { Username string `json:"username,omitempty"` Password string `json:"password,omitempty"` Email string `json:"email,omitempty"` } // Conn defines a container network connection. Conn struct { Name string `json:"name"` Aliases []string `json:"aliases"` } // Network defines a container network. Network struct { Name string `json:"name,omitempty"` Driver string `json:"driver,omitempty"` DriverOpts map[string]string `json:"driver_opts,omitempty"` } // Volume defines a container volume. Volume struct { Name string `json:"name,omitempty"` Driver string `json:"driver,omitempty"` DriverOpts map[string]string `json:"driver_opts,omitempty"` } // Secret defines a runtime secret Secret struct { Name string `json:"name,omitempty"` Value string `json:"value,omitempty"` Mount string `json:"mount,omitempty"` Mask bool `json:"mask,omitempty"` } // State defines a container state. State struct { // Container exit code ExitCode int `json:"exit_code"` // Container exited, true or false Exited bool `json:"exited"` // Container is oom killed, true or false OOMKilled bool `json:"oom_killed"` } // // State defines the pipeline and process state. // State struct { // Pipeline struct { // // Current pipeline step // Step *Step `json:"step"` // // Current pipeline error state // Error error `json:"error"` // } // // Process struct { // // Container exit code // ExitCode int `json:"exit_code"` // // Container exited, true or false // Exited bool `json:"exited"` // // Container is oom killed, true or false // OOMKilled bool `json:"oom_killed"` // } // } )