executor

package
v1.26.0 Latest Latest
Warning

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

Go to latest
Published: Jan 3, 2021 License: MPL-2.0 Imports: 45 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var TimeOutError = errors.New("timed out")

Functions

func BoundedCommands added in v1.6.0

func BoundedCommands(commands []*api.Command, fromName, toName string) []*api.Command

BoundedCommands bounds a slice of commands with unique names to a half-open range [fromName, toName).

func ConvertAnnotations

func ConvertAnnotations(annotations []model.Annotation) []*api.Annotation

func DeduplicatePaths added in v1.15.0

func DeduplicatePaths(paths []string) (result []string)

func DownloadCache

func DownloadCache(executor *Executor, commandName string, cacheHost string, instruction *api.CacheInstruction, custom_env map[string]string) bool

func EnsureFolderExists

func EnsureFolderExists(path string)

func ExpandText

func ExpandText(text string, customEnv map[string]string) string

func ExpandTextOSFirst

func ExpandTextOSFirst(text string, customEnv map[string]string) string

func FetchCache

func FetchCache(logUploader *LogUploader, commandName string, cacheHost string, cacheKey string) (*os.File, error)

func InitializeLogSaveClient

func InitializeLogSaveClient(taskIdentification *api.TaskIdentification, commandName string, raw bool) (api.CirrusCIService_SaveLogsClient, error)

func InitializeLogStreamClient

func InitializeLogStreamClient(taskIdentification *api.TaskIdentification, commandName string, raw bool) (api.CirrusCIService_StreamLogsClient, error)

func ShellCommands

func ShellCommands(scripts []string, custom_env *map[string]string, handler ShellOutputHandler) (*exec.Cmd, error)

func ShellCommandsAndGetOutput

func ShellCommandsAndGetOutput(scripts []string, custom_env *map[string]string, timeout *<-chan time.Time) (bool, string)

func ShellCommandsAndWait

func ShellCommandsAndWait(scripts []string, custom_env *map[string]string, handler ShellOutputHandler, executionTimeout *<-chan time.Time) (*exec.Cmd, error)

return true if executed successful

func TempFileName

func TempFileName(prefix, suffix string) (*os.File, error)

func UploadArtifacts

func UploadArtifacts(executor *Executor, name string, artifactsInstruction *api.ArtifactsInstruction, customEnv map[string]string) bool

func UploadCache

func UploadCache(executor *Executor, commandName string, cacheHost string, instruction *api.UploadCacheInstruction, env map[string]string) bool

func UploadCacheFile

func UploadCacheFile(cacheHost string, cacheKey string, cacheFile *os.File) error

Types

type Cache

type Cache struct {
	Name           string
	Key            string
	BaseFolder     string
	FoldersToCache []string
	Glob           string
	FileHasher     *hasher.Hasher
	SkipUpload     bool
	CacheAvailable bool
}

func FindCache

func FindCache(cacheName string) *Cache

type CommandAndLogs

type CommandAndLogs struct {
	Name string
	Cmd  *exec.Cmd
	Logs *LogUploader
}

type Executor

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

func NewExecutor

func NewExecutor(taskId int64, clientToken, serverToken string, commandFrom string, commandTo string) *Executor

func (*Executor) CloneRepository

func (executor *Executor) CloneRepository(env map[string]string) bool

func (*Executor) CreateFile

func (executor *Executor) CreateFile(
	commandName string,
	instruction *api.FileInstruction,
	env map[string]string,
) bool

func (*Executor) ExecuteScriptsAndStreamLogs

func (executor *Executor) ExecuteScriptsAndStreamLogs(
	commandName string,
	scripts []string,
	env map[string]string) (*exec.Cmd, *LogUploader, error)

func (*Executor) ExecuteScriptsStreamLogsAndWait

func (executor *Executor) ExecuteScriptsStreamLogsAndWait(
	commandName string,
	scripts []string,
	env map[string]string) (*exec.Cmd, error)

func (*Executor) RunBuild

func (executor *Executor) RunBuild()

type LogUploader

type LogUploader struct {

	// Fields related to the CIRRUS_LOG_TIMESTAMP behavioral environment variable
	LogTimestamps bool
	GetTimestamp  func() time.Time
	OweTimestamp  bool
	// contains filtered or unexported fields
}

func NewLogUploader

func NewLogUploader(executor *Executor, commandName string, env map[string]string) (*LogUploader, error)

func (*LogUploader) Finalize

func (uploader *LogUploader) Finalize()

func (*LogUploader) ReadAvailableChunks

func (uploader *LogUploader) ReadAvailableChunks() ([]byte, bool)

func (*LogUploader) StreamLogs

func (uploader *LogUploader) StreamLogs()

func (*LogUploader) UploadStoredOutput

func (uploader *LogUploader) UploadStoredOutput() error

func (*LogUploader) WithTimestamps added in v1.17.0

func (uploader *LogUploader) WithTimestamps(input []byte) []byte

func (*LogUploader) Write

func (uploader *LogUploader) Write(bytes []byte) (int, error)

func (*LogUploader) WriteChunk

func (uploader *LogUploader) WriteChunk(bytesToWrite []byte) (int, error)

type ShellOutputHandler

type ShellOutputHandler func(bytes []byte) (int, error)

type ShellOutputWriter

type ShellOutputWriter struct {
	io.Writer
	// contains filtered or unexported fields
}

func (ShellOutputWriter) Write

func (writer ShellOutputWriter) Write(bytes []byte) (int, error)

Jump to

Keyboard shortcuts

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