Documentation ¶
Index ¶
- Constants
- type Build
- type BytesSize
- type Clone
- type Concurrency
- type Condition
- type Conditions
- type Container
- type Cron
- type CronDeployment
- type CronSpec
- type ExternalData
- type Manifest
- type Parameter
- type Pipeline
- type Platform
- type Port
- type Push
- type RawResource
- type Registry
- type Resource
- type ResourceObject
- type Resources
- type Secret
- type SecretGet
- type Signature
- type Variable
- type Volume
- type VolumeDevice
- type VolumeEmptyDir
- type VolumeHostPath
- type VolumeMount
- type Workspace
Constants ¶
const ( KindCron = "cron" KindPipeline = "pipeline" KindRegistry = "registry" KindSecret = "secret" KindSignature = "signature" )
Resource enums.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Build ¶
type Build struct { Args map[string]string `json:"args,omitempty"` CacheFrom []string `json:"cache_from,omitempty" yaml:"cache_from"` Context string `json:"context,omitempty"` Dockerfile string `json:"dockerfile,omitempty"` Image string `json:"image,omitempty"` Labels map[string]string `json:"labels,omitempty"` }
Build configures a Docker build.
func (*Build) UnmarshalYAML ¶
UnmarshalYAML implements yaml unmarshalling.
type BytesSize ¶
type BytesSize int64
BytesSize stores a human-readable size in bytes, kibibytes, mebibytes, gibibytes, or tebibytes (eg. "44kiB", "17MiB").
func (BytesSize) String ¶
String returns a human-readable size in bytes, kibibytes, mebibytes, gibibytes, or tebibytes (eg. "44kiB", "17MiB").
func (*BytesSize) UnmarshalYAML ¶
UnmarshalYAML implements yaml unmarshalling.
type Clone ¶
type Clone struct { Disable bool `json:"disable,omitempty"` Depth int `json:"depth,omitempty"` SkipVerify bool `json:"skip_verify,omitempty" yaml:"skip_verify"` }
Clone configures the git clone.
type Concurrency ¶
type Concurrency struct {
Limit int `json:"limit,omitempty"`
}
Concurrency limits pipeline concurrency.
type Condition ¶
type Condition struct { Include []string `yaml:"include,omitempty" json:"include,omitempty"` Exclude []string `yaml:"exclude,omitempty" json:"exclude,omitempty"` }
Condition defines a runtime condition.
func (*Condition) Match ¶
Match returns true if the string matches the include patterns and does not match any of the exclude patterns.
func (*Condition) UnmarshalYAML ¶
UnmarshalYAML implements yml unmarshalling.
type Conditions ¶
type Conditions struct { Action Condition `json:"action,omitempty"` Cron Condition `json:"cron,omitempty"` Ref Condition `json:"ref,omitempty"` Repo Condition `json:"repo,omitempty"` Instance Condition `json:"instance,omitempty"` Target Condition `json:"target,omitempty"` Event Condition `json:"event,omitempty"` Branch Condition `json:"branch,omitempty"` Status Condition `json:"status,omitempty"` Paths Condition `json:"paths,omitempty"` Matrix map[string]string `json:"matrix,omitempty"` }
Conditions defines a group of conditions.
type Container ¶
type Container struct { Build *Build `json:"build,omitempty"` Command []string `json:"command,omitempty"` Commands []string `json:"commands,omitempty"` Detach bool `json:"detach,omitempty"` DependsOn []string `json:"depends_on,omitempty" yaml:"depends_on"` Devices []*VolumeDevice `json:"devices,omitempty"` DNS []string `json:"dns,omitempty"` DNSSearch []string `json:"dns_search,omitempty" yaml:"dns_search"` Entrypoint []string `json:"entrypoint,omitempty"` Environment map[string]*Variable `json:"environment,omitempty"` ExtraHosts []string `json:"extra_hosts,omitempty" yaml:"extra_hosts"` Failure string `json:"failure,omitempty"` Image string `json:"image,omitempty"` Network string `json:"network_mode,omitempty" yaml:"network_mode"` Name string `json:"name,omitempty"` Ports []*Port `json:"ports,omitempty"` Privileged bool `json:"privileged,omitempty"` Pull string `json:"pull,omitempty"` Push *Push `json:"push,omitempty"` Resources *Resources `json:"resources,omitempty"` Settings map[string]*Parameter `json:"settings,omitempty"` Shell string `json:"shell,omitempty"` User string `json:"user,omitempty"` Volumes []*VolumeMount `json:"volumes,omitempty"` When Conditions `json:"when,omitempty"` WorkingDir string `json:"working_dir,omitempty" yaml:"working_dir"` }
Container defines a Docker container configuration.
type Cron ¶
type Cron struct { Version string `json:"version,omitempty"` Kind string `json:"kind,omitempty"` Type string `json:"type,omitempty"` Name string `json:"name,omitempty"` Spec CronSpec `json:"spec,omitempty"` }
Cron is a resource that defines a cron job, used to execute pipelines at scheduled intervals.
func (*Cron) GetVersion ¶
GetVersion returns the resource version.
type CronDeployment ¶
type CronDeployment struct {
Target string `json:"target,omitempty"`
}
CronDeployment defines a cron job deployment.
type CronSpec ¶
type CronSpec struct { Schedule string `json:"schedule,omitempty"` Branch string `json:"branch,omitempty"` Deploy CronDeployment `json:"deployment,omitempty" yaml:"deployment"` }
CronSpec defines the cron job.
type ExternalData ¶
type ExternalData struct { Path string `json:"path,omitempty"` Name string `json:"name,omitempty"` }
ExternalData defines the path and name of external data located in an external or remote storage system.
type Manifest ¶
type Manifest struct {
Resources []Resource
}
Manifest is a collection of Drone resources.
func ParseBytes ¶
ParseBytes parses the configuration from bytes b.
func ParseString ¶
ParseString parses the configuration from string s.
func (*Manifest) MarshalJSON ¶
MarshalJSON implement the json.Marshaler.
func (*Manifest) MarshalYAML ¶
MarshalYAML is not implemented and returns an error. This is because the Manifest is a representation of multiple yaml documents, and MarshalYAML would otherwise attempt to marshal as a single Yaml document. Use the Encode method instead.
func (*Manifest) UnmarshalJSON ¶
UnmarshalJSON implement the json.Unmarshaler.
type Parameter ¶
type Parameter struct { Value interface{} `json:"value,omitempty"` Secret string `json:"from_secret,omitempty" yaml:"from_secret"` }
Parameter represents an configuration parameter that can be defined as a literal or as a reference to a secret.
func (*Parameter) MarshalYAML ¶ added in v1.0.9
MarshalYAML implements yaml marshalling.
func (*Parameter) UnmarshalYAML ¶
UnmarshalYAML implements yaml unmarshalling.
type Pipeline ¶
type Pipeline struct { Version string `json:"version,omitempty"` Kind string `json:"kind,omitempty"` Type string `json:"type,omitempty"` Name string `json:"name,omitempty"` Clone Clone `json:"clone,omitempty"` Concurrency Concurrency `json:"concurrency,omitempty"` DependsOn []string `json:"depends_on,omitempty" yaml:"depends_on" ` Node map[string]string `json:"node,omitempty" yaml:"node"` Platform Platform `json:"platform,omitempty"` PullSecrets []string `json:"image_pull_secrets,omitempty" yaml:"image_pull_secrets"` Services []*Container `json:"services,omitempty"` Steps []*Container `json:"steps,omitempty"` Trigger Conditions `json:"trigger,omitempty"` Volumes []*Volume `json:"volumes,omitempty"` Workspace Workspace `json:"workspace,omitempty"` }
Pipeline is a resource that defines a continuous delivery pipeline.
func (*Pipeline) GetVersion ¶
GetVersion returns the resource version.
type Platform ¶
type Platform struct { OS string `json:"os,omitempty"` Arch string `json:"arch,omitempty"` Variant string `json:"variant,omitempty"` Version string `json:"version,omitempty"` }
Platform defines the target platform.
type Port ¶
type Port struct { Port int `json:"port,omitempty"` Host int `json:"host,omitempty"` Protocol string `json:"protocol,omitempty"` }
Port represents a network port in a single container.
func (*Port) UnmarshalYAML ¶
UnmarshalYAML implements yaml unmarshalling.
type Push ¶
type Push struct {
Image string `json:"image,omitempty"`
}
Push configures a Docker push.
func (*Push) UnmarshalYAML ¶
UnmarshalYAML implements yaml unmarshalling.
type RawResource ¶
RawResource is a raw encoded resource with the resource kind and type extracted.
func ParseRaw ¶
func ParseRaw(r io.Reader) ([]*RawResource, error)
ParseRaw parses the multi-document yaml from the io.Reader and returns a slice of raw resources.
func ParseRawBytes ¶
func ParseRawBytes(b []byte) ([]*RawResource, error)
ParseRawBytes parses the multi-document yaml from b and returns a slice of raw resources.
func ParseRawFile ¶
func ParseRawFile(p string) ([]*RawResource, error)
ParseRawFile parses the multi-document yaml from path p and returns a slice of raw resources.
func ParseRawString ¶
func ParseRawString(s string) ([]*RawResource, error)
ParseRawString parses the multi-document yaml from s and returns a slice of raw resources.
type Registry ¶
type Registry struct { Version string `json:"version,omitempt"` Kind string `json:"kind,omitempty"` Type string `json:"type,omitempty"` Data map[string]string `json:"data,omitempty"` }
Registry is a resource that provides encrypted registry credentials and pointers to external registry credentials (e.g. from vault).
func (*Registry) GetVersion ¶
GetVersion returns the resource version.
type Resource ¶
type Resource interface { // GetVersion returns the resource version. GetVersion() string // GetKind returns the resource kind. GetKind() string }
Resource represents a Drone resource.
type ResourceObject ¶
ResourceObject describes compute resource requirements.
type Resources ¶
type Resources struct { // Limits describes the maximum amount of compute // resources allowed. Limits *ResourceObject `json:"limits,omitempty"` // Requests describes the minimum amount of // compute resources required. Requests *ResourceObject `json:"requests,omitempty"` }
Resources describes the compute resource requirements.
type Secret ¶
type Secret struct { Version string `json:"version,omitempty"` Kind string `json:"kind,omitempty"` Type string `json:"type,omitempty"` Name string `json:"name,omitempty"` Data string `json:"data,omitempty"` Get SecretGet `json:"get,omitempty"` }
Secret is a resource that provides encrypted data and pointers to external data (i.e. from vault).
func (*Secret) GetVersion ¶
GetVersion returns the resource version.
type SecretGet ¶
type SecretGet struct { Path string `json:"path,omitempty"` Name string `json:"name,omitempty"` Key string `json:"key,omitempty"` }
SecretGet defines a request to get a secret from an external sevice at the specified path, or with the specified name.
type Signature ¶
type Signature struct { Version string `json:"version,omitempty"` Kind string `json:"kind"` Hmac string `json:"hmac"` }
Signature is a resource that provides an hmac signature of combined resources. This signature can be used to validate authenticity and prevent tampering.
func (*Signature) GetVersion ¶
GetVersion returns the resource version.
type Variable ¶
type Variable struct { Value string `json:"value,omitempty"` Secret string `json:"from_secret,omitempty" yaml:"from_secret"` }
Variable represents an environment variable that can be defined as a string literal or as a reference to a secret.
func (*Variable) MarshalYAML ¶ added in v1.0.9
MarshalYAML implements yaml marshalling.
func (*Variable) UnmarshalYAML ¶
UnmarshalYAML implements yaml unmarshalling.
type Volume ¶
type Volume struct { Name string `json:"name,omitempty"` EmptyDir *VolumeEmptyDir `json:"temp,omitempty" yaml:"temp"` HostPath *VolumeHostPath `json:"host,omitempty" yaml:"host"` }
Volume that can be mounted by containers.
type VolumeDevice ¶
type VolumeDevice struct { Name string `json:"name,omitempty"` DevicePath string `json:"path,omitempty" yaml:"path"` }
VolumeDevice describes a mapping of a raw block device within a container.
type VolumeEmptyDir ¶
type VolumeEmptyDir struct { Medium string `json:"medium,omitempty"` SizeLimit BytesSize `json:"size_limit,omitempty" yaml:"size_limit"` }
VolumeEmptyDir mounts a temporary directory from the host node's filesystem into the container. This can be used as a shared scratch space.
type VolumeHostPath ¶
type VolumeHostPath struct {
Path string `json:"path,omitempty"`
}
VolumeHostPath mounts a file or directory from the host node's filesystem into your container.
type VolumeMount ¶
type VolumeMount struct { Name string `json:"name,omitempty"` MountPath string `json:"path,omitempty" yaml:"path"` }
VolumeMount describes a mounting of a Volume within a container.