|
|
|
// Copyright 2019 Drone.IO Inc. All rights reserved.
|
|
|
|
// Use of this source code is governed by the Polyform License
|
|
|
|
// that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
// Package manifest provides definitions for the Yaml schema.
|
|
|
|
package manifest
|
|
|
|
|
|
|
|
// Resource enums.
|
|
|
|
const (
|
|
|
|
KindApproval = "approval"
|
|
|
|
KindDeployment = "deployment"
|
|
|
|
KindPipeline = "pipeline"
|
|
|
|
KindSecret = "secret"
|
|
|
|
KindSignature = "signature"
|
|
|
|
)
|
|
|
|
|
|
|
|
type (
|
|
|
|
// Manifest is a collection of Drone resources.
|
|
|
|
Manifest struct {
|
|
|
|
Resources []Resource
|
|
|
|
}
|
|
|
|
|
|
|
|
// Resource represents a Drone resource.
|
|
|
|
Resource interface {
|
|
|
|
GetVersion() string
|
|
|
|
GetKind() string
|
|
|
|
GetType() string
|
|
|
|
GetName() string
|
|
|
|
}
|
|
|
|
|
|
|
|
// ConcurrentResource is a resource with concurrency limits.
|
|
|
|
ConcurrentResource interface {
|
|
|
|
Resource
|
|
|
|
GetConcurrency() Concurrency
|
|
|
|
}
|
|
|
|
|
|
|
|
// DependantResource is a resource with runtime dependencies.
|
|
|
|
DependantResource interface {
|
|
|
|
Resource
|
|
|
|
GetDependsOn() []string
|
|
|
|
}
|
|
|
|
|
|
|
|
// PlatformResource is a resource with platform requirements.
|
|
|
|
PlatformResource interface {
|
|
|
|
Resource
|
|
|
|
GetPlatform() Platform
|
|
|
|
}
|
|
|
|
|
|
|
|
// RoutedResource is a resource that can be routed to
|
|
|
|
// specific build nodes.
|
|
|
|
RoutedResource interface {
|
|
|
|
Resource
|
|
|
|
GetNodes() map[string]string
|
|
|
|
}
|
|
|
|
|
|
|
|
// TriggeredResource is a resource with trigger rules.
|
|
|
|
TriggeredResource interface {
|
|
|
|
Resource
|
|
|
|
GetTrigger() Conditions
|
|
|
|
}
|
|
|
|
|
|
|
|
// RawResource is a raw encoded resource with the common
|
|
|
|
// metadata extracted.
|
|
|
|
RawResource struct {
|
|
|
|
Version string
|
|
|
|
Kind string
|
|
|
|
Type string
|
|
|
|
Name string
|
|
|
|
Deps []string `yaml:"depends_on"`
|
|
|
|
Node map[string]string
|
|
|
|
Concurrency Concurrency
|
|
|
|
Platform Platform
|
|
|
|
Data []byte `yaml:"-"`
|
|
|
|
}
|
|
|
|
)
|