build

package
v0.25.0 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2024 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const DEFAULT_POLLER_INTERVAL = "0 */5 * * * *"

Variables

View Source
var (
	ErrBuildNotFound = errors.New("build not found")
)

Functions

func GetConfigDir added in v0.25.0

func GetConfigDir() (string, error)

func IsBuildNotFound

func IsBuildNotFound(err error) bool

func Save added in v0.25.0

func Save(c Config) error

Types

type Build added in v0.25.0

type Build struct {
	Id      string          `json:"id" validate:"required"`
	Hash    string          `json:"hash" validate:"required"`
	State   BuildState      `json:"state" validate:"required"`
	Project project.Project `json:"project" validate:"required"`
	User    string          `json:"user" validate:"required"`
	Image   string          `json:"image" validate:"required"`

} // @name Build

type BuildFilter added in v0.25.0

type BuildFilter struct {
	State *BuildState
}

type BuildOutcome

type BuildOutcome struct {
	Outcome               string `json:"outcome"`
	ContainerId           string `json:"containerId"`
	RemoteUser            string `json:"remoteUser"`
	RemoteWorkspaceFolder string `json:"remoteWorkspaceFolder"`
}

type BuildRunner added in v0.25.0

type BuildRunner struct {
	Id string
	// contains filtered or unexported fields
}

func NewBuildRunner added in v0.25.0

func NewBuildRunner(config BuildRunnerInstanceConfig) *BuildRunner

func (*BuildRunner) Run added in v0.25.0

func (r *BuildRunner) Run()

func (*BuildRunner) RunBuildProcess added in v0.25.0

func (r *BuildRunner) RunBuildProcess(build *Build, wg *sync.WaitGroup)

func (*BuildRunner) Start added in v0.25.0

func (r *BuildRunner) Start() error

func (*BuildRunner) Stop added in v0.25.0

func (r *BuildRunner) Stop()

type BuildRunnerInstanceConfig added in v0.25.0

type BuildRunnerInstanceConfig struct {
	Interval         string
	Scheduler        scheduler.IScheduler
	BuildRunnerId    string
	BuildStore       Store
	BuilderFactory   IBuilderFactory
	LoggerFactory    logs.LoggerFactory
	TelemetryEnabled bool
	TelemetryService telemetry.TelemetryService
}

type BuildState added in v0.25.0

type BuildState string
const (
	BuildStatePending   BuildState = "pending"
	BuildStateRunning   BuildState = "running"
	BuildStateError     BuildState = "error"
	BuildStateSuccess   BuildState = "success"
	BuildStatePublished BuildState = "published"
)

type Builder

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

func (*Builder) SaveBuild added in v0.25.0

func (b *Builder) SaveBuild(build Build) error

type BuilderFactory

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

func (*BuilderFactory) CheckExistingBuild

func (f *BuilderFactory) CheckExistingBuild(p project.Project) (*Build, error)

func (*BuilderFactory) Create

func (f *BuilderFactory) Create(build Build) (IBuilder, error)

type BuilderFactoryConfig

type BuilderFactoryConfig struct {
	Image                    string
	ContainerRegistryService containerregistries.IContainerRegistryService
	ContainerRegistryServer  string
	BuildStore               Store
	BuildImageNamespace      string // Namespace to be used when tagging and pushing the build image
	LoggerFactory            logs.LoggerFactory
	DefaultProjectImage      string
	DefaultProjectUser       string
	BasePath                 string
}

type Config added in v0.25.0

type Config struct {
	Id               string `json:"id" validate:"required"`
	Interval         string `json:"interval" validate:"required"`
	TelemetryEnabled bool   `json:"telemetryEnabled" validate:"required"`

} // @name BuildRunnerConfig

func GetConfig added in v0.25.0

func GetConfig() (*Config, error)

type CronScheduler added in v0.25.0

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

CronScheduler is a wrapper around the cron library. It implements the IScheduler interface. It is used to schedule tasks at specific intervals. Wrapping the cron library is necessary to enable proper mocking while testing dependent code.

func NewCronScheduler added in v0.25.0

func NewCronScheduler() *CronScheduler

func (*CronScheduler) AddFunc added in v0.25.0

func (s *CronScheduler) AddFunc(interval string, cmd func()) error

func (*CronScheduler) Start added in v0.25.0

func (s *CronScheduler) Start()

func (*CronScheduler) Stop added in v0.25.0

func (s *CronScheduler) Stop()

type DevcontainerBuilder

type DevcontainerBuilder struct {
	*Builder
	// contains filtered or unexported fields
}

func (*DevcontainerBuilder) Build

func (b *DevcontainerBuilder) Build(build Build) (string, string, error)

func (*DevcontainerBuilder) CleanUp

func (b *DevcontainerBuilder) CleanUp() error

func (*DevcontainerBuilder) Publish

func (b *DevcontainerBuilder) Publish(build Build) error

type IBuilder

type IBuilder interface {
	Build(build Build) (string, string, error)
	CleanUp() error
	Publish(build Build) error
	SaveBuild(build Build) error
}

type IBuilderFactory

type IBuilderFactory interface {
	Create(build Build) (IBuilder, error)
	CheckExistingBuild(p project.Project) (*Build, error)
}

func NewBuilderFactory

func NewBuilderFactory(config BuilderFactoryConfig) IBuilderFactory

type Store

type Store interface {
	Find(hash string) (*Build, error)
	List(filter *BuildFilter) ([]*Build, error)
	Save(build *Build) error
	Delete(hash string) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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