model

package
v0.0.18 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewDefaultDeployParams

func NewDefaultDeployParams() []string

func NewDefaultLaunchParams

func NewDefaultLaunchParams(
	appName string,
	orgSlug string,
) []string

Types

type AppConfig

type AppConfig struct {
	App           string            `yaml:"app" toml:"app"`
	Org           string            `yaml:"org" toml:"org"`
	PrimaryRegion string            `yaml:"primary_region" toml:"primary_region"`
	Source        Source            `yaml:"source" toml:"source"`
	Services      []Service         `yaml:"services" toml:"services"`
	LaunchParams  []string          `yaml:"launch_params" toml:"launch_params"`
	DeployParams  []string          `yaml:"deploy_params" toml:"deploy_params"`
	Env           map[string]string `yaml:"env" toml:"env"`
}

func (*AppConfig) Validate

func (a *AppConfig) Validate(options ...ValidateAppConfigOptions) error

type AppDeployFailure added in v0.0.18

type AppDeployFailure struct {
	Spec  AppNode
	Cause error
}

type AppDeploySuccess added in v0.0.18

type AppDeploySuccess struct {
	Spec        AppNode
	SuccessType SingleAppDeploySuccessType
}

type AppNode added in v0.0.18

type AppNode struct {
	Path               string
	AppYaml            string
	AppConfig          AppConfig
	AppConfigSyntaxErr error
	AppConfigSemErr    error
}

func (AppNode) IsAppNode added in v0.0.18

func (s AppNode) IsAppNode() bool

func (AppNode) IsAppSyntaxValid added in v0.0.18

func (s AppNode) IsAppSyntaxValid() bool

func (AppNode) IsValidApp added in v0.0.18

func (s AppNode) IsValidApp() bool

type Concurrency

type Concurrency struct {
	Type      string `yaml:"type" toml:"type"`
	SoftLimit int    `yaml:"soft_limit" toml:"soft_limit"`
	HardLimit int    `yaml:"hard_limit" toml:"hard_limit"`
}

type DeployConfig added in v0.0.18

type DeployConfig struct {
	Force             bool
	Retries           int
	AttemptTimeout    time.Duration
	AbortOnFirstError bool
}

func NewDeployConfig added in v0.0.18

func NewDeployConfig() DeployConfig

func (DeployConfig) WithAbortOnFirstError added in v0.0.18

func (c DeployConfig) WithAbortOnFirstError(state ...bool) DeployConfig

func (DeployConfig) WithAttemptTimeout added in v0.0.18

func (c DeployConfig) WithAttemptTimeout(timeout ...time.Duration) DeployConfig

func (DeployConfig) WithForce added in v0.0.18

func (c DeployConfig) WithForce(force ...bool) DeployConfig

func (DeployConfig) WithRetries added in v0.0.18

func (c DeployConfig) WithRetries(retries ...int) DeployConfig

type DeployResult added in v0.0.18

type DeployResult struct {
	SucceededApps     []AppDeploySuccess
	FailedApps        []AppDeployFailure
	ProcessedProjects []ProjectNode
	FailedProjects    []ProjectProcessingFailure
}

func NewEmptyDeployResult added in v0.0.18

func NewEmptyDeployResult() DeployResult

func (DeployResult) HasErrors added in v0.0.18

func (r DeployResult) HasErrors() bool

func (DeployResult) Plus added in v0.0.18

func (r DeployResult) Plus(other DeployResult) DeployResult

func (DeployResult) Success added in v0.0.18

func (r DeployResult) Success() bool

type GitRef

type GitRef struct {
	Branch string `yaml:"branch" toml:"branch"`
	Tag    string `yaml:"tag" toml:"tag"`
	Commit string `yaml:"commit" toml:"commit"`
}

func (*GitRef) IsEmpty

func (g *GitRef) IsEmpty() bool

type Port

type Port struct {
	Handlers   []string `yaml:"handlers" toml:"handlers"`
	Port       int      `yaml:"port" toml:"port"`
	ForceHttps bool     `yaml:"force_https" toml:"force_https"`
}

type ProjectConfig

type ProjectConfig struct {
	// Name Required. Name of the project
	Project string `yaml:"project" toml:"project"`
	// Source Required. Where the app configs of the project are located
	Source Source `yaml:"source" toml:"source"`
}

func (*ProjectConfig) Validate

func (cfg *ProjectConfig) Validate() error

type ProjectNode added in v0.0.18

type ProjectNode struct {
	Path                   string
	ProjectYaml            string
	ProjectConfig          ProjectConfig
	ProjectConfigSyntaxErr error
	ProjectConfigSemErr    error
}

func (ProjectNode) IsProjectNode added in v0.0.18

func (s ProjectNode) IsProjectNode() bool

func (ProjectNode) IsProjectSyntaxValid added in v0.0.18

func (s ProjectNode) IsProjectSyntaxValid() bool

func (ProjectNode) IsValidProject added in v0.0.18

func (s ProjectNode) IsValidProject() bool

type ProjectProcessingFailure added in v0.0.18

type ProjectProcessingFailure struct {
	Spec  ProjectNode
	Cause error
}

type Service

type Service struct {
	InternalPort       int         `yaml:"internal_port" toml:"internal_port"`
	Protocol           string      `yaml:"protocol" toml:"protocol"`
	ForceHttps         bool        `yaml:"force_https" toml:"force_https"`
	AutoStopMachines   bool        `yaml:"auto_stop_machines" toml:"auto_stop_machines"`
	AutoStartMachines  bool        `yaml:"auto_start_machines" toml:"auto_start_machines"`
	MinMachinesRunning int         `yaml:"min_machines_running" toml:"min_machines_running"`
	Concurrency        Concurrency `yaml:"concurrency" toml:"concurrency"`
	Ports              []Port      `yaml:"ports" toml:"ports"`
}

func NewDefaultServiceConfig

func NewDefaultServiceConfig() Service

type SingleAppDeploySuccessType added in v0.0.18

type SingleAppDeploySuccessType string
const (
	SingleAppDeployCreated  SingleAppDeploySuccessType = "created"
	SingleAppDeployUpdated  SingleAppDeploySuccessType = "updated"
	SingleAppDeployNoChange SingleAppDeploySuccessType = "no-change"
)

type Source

type Source struct {
	Repo   string     `yaml:"repo" toml:"repo"`
	Path   string     `yaml:"path" toml:"path"`
	Ref    GitRef     `yaml:"ref" toml:"ref"`
	Type   SourceType `yaml:"type" toml:"type"`
	Inline string     `yaml:"inline" toml:"inline"`
}

func NewInlineDockerFileSource

func NewInlineDockerFileSource(inline string) Source

func NewLocalFolderSource

func NewLocalFolderSource(path string) Source

func (*Source) Validate

func (s *Source) Validate() error

type SourceType

type SourceType string
const (
	SourceTypeGit              SourceType = "git"
	SourceTypeLocal            SourceType = "local"
	SourceTypeDocker           SourceType = "docker"
	SourceTypeInlineDockerFile SourceType = "inline-docker-file"
)

type SpecNode added in v0.0.18

type SpecNode struct {
	Path     string
	App      *AppNode
	Project  *ProjectNode
	Children []SpecNode
}

func (SpecNode) Apps added in v0.0.18

func (s SpecNode) Apps() []AppNode

func (SpecNode) Flatten added in v0.0.18

func (s SpecNode) Flatten() []SpecNode

func (SpecNode) IsAppNode added in v0.0.18

func (s SpecNode) IsAppNode() bool

func (SpecNode) IsAppSyntaxValid added in v0.0.18

func (s SpecNode) IsAppSyntaxValid() bool

func (SpecNode) IsProjectNode added in v0.0.18

func (s SpecNode) IsProjectNode() bool

func (SpecNode) IsValidApp added in v0.0.18

func (s SpecNode) IsValidApp() bool

func (SpecNode) Projects added in v0.0.18

func (s SpecNode) Projects() []ProjectNode

func (SpecNode) Traverse added in v0.0.18

func (s SpecNode) Traverse(t func(node SpecNode) error) error

func (SpecNode) TraverseNoErr added in v0.0.18

func (s SpecNode) TraverseNoErr(t func(node SpecNode))

type TraversalStepAnalysis added in v0.0.18

type TraversalStepAnalysis struct {
	HasAppYaml            bool
	HasProjectYaml        bool
	HasProjectsDir        bool
	TraversableCandidates []os.DirEntry
}

type ValidateAppConfigOptions

type ValidateAppConfigOptions struct {
	ValidateSource bool
}

func NewValidateAppConfigOptions

func NewValidateAppConfigOptions() ValidateAppConfigOptions

func (ValidateAppConfigOptions) WithValidateSource

func (opts ValidateAppConfigOptions) WithValidateSource(validateSource ...bool) ValidateAppConfigOptions

Jump to

Keyboard shortcuts

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