Documentation ¶
Index ¶
- Constants
- Variables
- func GenerateShellScript(buildStage BuildStage, info ShellScriptInfo) (string, error)
- func GetCommands() []cli.Command
- func GetDefaultShell() string
- func GetExecutors() []string
- func GetShells() []string
- func RegisterCommand(command cli.Command)
- func RegisterCommand2(name, usage string, data Commander, flags ...cli.Flag)
- func RegisterExecutor(executor string, provider ExecutorProvider)
- func RegisterShell(shell Shell)
- type AppVersionInfo
- type Artifact
- type ArtifactPaths
- type ArtifactWhen
- type Artifacts
- type Build
- func (b *Build) CurrentExecutorStage() ExecutorStage
- func (b *Build) FullProjectDir() string
- func (b *Build) GetAllVariables() JobVariables
- func (b *Build) GetBuildTimeout() time.Duration
- func (b *Build) GetCITLSVariables() JobVariables
- func (b *Build) GetCacheRequestTimeout() int
- func (b *Build) GetDefaultVariables() JobVariables
- func (b *Build) GetDockerAuthConfig() string
- func (b *Build) GetDownloadArtifactsAttempts() int
- func (b *Build) GetGetSourcesAttempts() int
- func (b *Build) GetGitCheckout() bool
- func (b *Build) GetGitDepth() string
- func (b *Build) GetGitStrategy() GitStrategy
- func (b *Build) GetGitTLSVariables() JobVariables
- func (b *Build) GetRemoteURL() string
- func (b *Build) GetRestoreCacheAttempts() int
- func (b *Build) GetSharedEnvVariable() JobVariable
- func (b *Build) GetSubmoduleStrategy() SubmoduleStrategy
- func (b *Build) IsDebugTraceEnabled() bool
- func (b *Build) IsSharedEnv() bool
- func (b *Build) Log() *logrus.Entry
- func (b *Build) ProjectSlug() (string, error)
- func (b *Build) ProjectUniqueDir(sharedDir bool) string
- func (b *Build) ProjectUniqueName() string
- func (b *Build) Run(globalConfig *Config, trace JobTrace) (err error)
- func (b *Build) StartBuild(rootDir, cacheDir string, sharedDir bool)
- func (b *Build) String() string
- type BuildError
- type BuildLogger
- func (e *BuildLogger) Debugln(args ...interface{})
- func (e *BuildLogger) Errorln(args ...interface{})
- func (e *BuildLogger) Infoln(args ...interface{})
- func (e *BuildLogger) Println(args ...interface{})
- func (e *BuildLogger) SendRawLog(args ...interface{})
- func (e *BuildLogger) SoftErrorln(args ...interface{})
- func (e *BuildLogger) Warningln(args ...interface{})
- type BuildRuntimeState
- type BuildStage
- type Cache
- type CacheConfig
- type CachePolicy
- type Caches
- type Commander
- type Config
- type ContainerCommand
- type Credentials
- type Dependencies
- type Dependency
- type DependencyArtifactsFile
- type DockerConfig
- type DockerMachine
- type DockerPullPolicy
- type DockerSysCtls
- type DownloadState
- type Executor
- type ExecutorCommand
- type ExecutorData
- type ExecutorPrepareOptions
- type ExecutorProvider
- type ExecutorStage
- type FailuresCollector
- type FeaturesInfo
- type GitInfo
- type GitInfoRefType
- type GitStrategy
- type GitlabFeatures
- type Image
- type JobCredentials
- type JobFailureReason
- type JobInfo
- type JobRequest
- type JobResponse
- func GetFailedBuild() (JobResponse, error)
- func GetLongRunningBuild() (JobResponse, error)
- func GetMultilineBashBuild() (JobResponse, error)
- func GetRemoteBrokenTLSBuild() (job JobResponse, err error)
- func GetRemoteFailedBuild() (JobResponse, error)
- func GetRemoteGitLabComTLSBuild() (job JobResponse, err error)
- func GetRemoteLongRunningBuild() (JobResponse, error)
- func GetRemoteSuccessfulBuild() (JobResponse, error)
- func GetRemoteSuccessfulBuildWithAfterScript() (JobResponse, error)
- func GetRemoteSuccessfulBuildWithDumpedVariables() (response JobResponse, err error)
- func GetSuccessfulBuild() (JobResponse, error)
- type JobState
- type JobTrace
- type JobTracePatch
- type JobVariable
- type JobVariables
- type KubernetesConfig
- type KubernetesConfigMap
- type KubernetesEmptyDir
- type KubernetesHostPath
- type KubernetesPVC
- type KubernetesPullPolicy
- type KubernetesSecret
- type KubernetesVolumes
- type MockCommander
- type MockExecutor
- func (_m *MockExecutor) Cleanup()
- func (_m *MockExecutor) Finish(err error)
- func (_m *MockExecutor) GetCurrentStage() ExecutorStage
- func (_m *MockExecutor) Prepare(options ExecutorPrepareOptions) error
- func (_m *MockExecutor) Run(cmd ExecutorCommand) error
- func (_m *MockExecutor) SetCurrentStage(stage ExecutorStage)
- func (_m *MockExecutor) Shell() *ShellScriptInfo
- type MockExecutorData
- type MockExecutorProvider
- func (_m *MockExecutorProvider) Acquire(config *RunnerConfig) (ExecutorData, error)
- func (_m *MockExecutorProvider) CanCreate() bool
- func (_m *MockExecutorProvider) Create() Executor
- func (_m *MockExecutorProvider) GetFeatures(features *FeaturesInfo)
- func (_m *MockExecutorProvider) Release(config *RunnerConfig, data ExecutorData) error
- type MockJobTrace
- type MockJobTracePatch
- type MockNetwork
- func (_m *MockNetwork) DownloadArtifacts(config JobCredentials, artifactsFile string) DownloadState
- func (_m *MockNetwork) PatchTrace(config RunnerConfig, jobCredentials *JobCredentials, tracePart JobTracePatch) UpdateState
- func (_m *MockNetwork) ProcessJob(config RunnerConfig, buildCredentials *JobCredentials) JobTrace
- func (_m *MockNetwork) RegisterRunner(config RunnerCredentials, description string, tags string, runUntagged bool, ...) *RegisterRunnerResponse
- func (_m *MockNetwork) RequestJob(config RunnerConfig) (*JobResponse, bool)
- func (_m *MockNetwork) UnregisterRunner(config RunnerCredentials) bool
- func (_m *MockNetwork) UpdateJob(config RunnerConfig, jobCredentials *JobCredentials, jobInfo UpdateJobInfo) UpdateState
- func (_m *MockNetwork) UploadArtifacts(config JobCredentials, artifactsFile string) UploadState
- func (_m *MockNetwork) UploadRawArtifacts(config JobCredentials, reader io.Reader, baseName string, expireIn string) UploadState
- func (_m *MockNetwork) VerifyRunner(config RunnerCredentials) bool
- type MockShell
- func (_m *MockShell) GenerateScript(buildStage BuildStage, info ShellScriptInfo) (string, error)
- func (_m *MockShell) GetConfiguration(info ShellScriptInfo) (*ShellConfiguration, error)
- func (_m *MockShell) GetFeatures(features *FeaturesInfo)
- func (_m *MockShell) GetName() string
- func (_m *MockShell) IsDefault() bool
- type Network
- type ParallelsConfig
- type RegisterRunnerRequest
- type RegisterRunnerResponse
- type RunnerConfig
- type RunnerCredentials
- func (c *RunnerCredentials) GetTLSCAFile() string
- func (c *RunnerCredentials) GetTLSCertFile() string
- func (c *RunnerCredentials) GetTLSKeyFile() string
- func (c *RunnerCredentials) GetToken() string
- func (c *RunnerCredentials) GetURL() string
- func (c *RunnerCredentials) Log() *log.Entry
- func (c *RunnerCredentials) SameAs(other *RunnerCredentials) bool
- func (c *RunnerCredentials) ShortDescription() string
- func (c *RunnerCredentials) UniqueID() string
- type RunnerInfo
- type RunnerSettings
- type Services
- type Shell
- type ShellConfiguration
- type ShellScriptInfo
- type ShellType
- type Step
- type StepName
- type StepScript
- type StepWhen
- type Steps
- type SubmoduleStrategy
- type Trace
- type UnregisterRunnerRequest
- type UpdateJobInfo
- type UpdateJobRequest
- type UpdateState
- type UploadState
- type VerifyRunnerRequest
- type VersionInfo
- type VirtualBoxConfig
Constants ¶
const ( PullPolicyAlways = "always" PullPolicyNever = "never" PullPolicyIfNotPresent = "if-not-present" )
const AfterScriptTimeout = 5 * time.Minute
const CheckInterval = 3 * time.Second
const DefaultArtifactDownloadAttempts = 1
const DefaultCacheRequestTimeout = 10
const DefaultExecTimeout = 1800
const DefaultGetSourcesAttempts = 1
const DefaultMetricsServerPort = 9252
const DefaultNetworkClientTimeout = 60 * time.Minute
const DefaultOutputLimit = 4096 // 4MB in kilobytes
const DefaultRestoreCacheAttempts = 1
const DefaultTimeout = 7200
const DefaultWaitForServicesTimeout = 30
const ForceTraceSentInterval = 30 * time.Second
const HealthCheckInterval = 3600
const HealthyChecks = 3
const KubernetesPollInterval = 3
const KubernetesPollTimeout = 180
const NotHealthyCheckInterval = 300
const PreparationRetries = 3
const ReloadConfigInterval = 3
const ShutdownTimeout = 30
const UpdateInterval = 3 * time.Second
const UpdateRetryInterval = 3 * time.Second
Variables ¶
var BRANCH = "HEAD"
var BUILT = "unknown"
var NAME = "gitlab-runner"
var PreparationRetryInterval = 3 * time.Second
var REVISION = "HEAD"
var VERSION = "development version"
Functions ¶
func GenerateShellScript ¶
func GenerateShellScript(buildStage BuildStage, info ShellScriptInfo) (string, error)
func GetCommands ¶
func GetDefaultShell ¶
func GetDefaultShell() string
func GetExecutors ¶
func GetExecutors() []string
func RegisterCommand ¶
func RegisterCommand2 ¶
func RegisterExecutor ¶
func RegisterExecutor(executor string, provider ExecutorProvider)
func RegisterShell ¶
func RegisterShell(shell Shell)
Types ¶
type AppVersionInfo ¶
type AppVersionInfo struct { Name string `json:"name"` Version string `json:"version"` Revision string `json:"revision"` Branch string `json:"branch"` GOVersion string `json:"go_version"` BuiltAt string `json:"built_at"` OS string `json:"os"` Architecture string `json:"architecture"` }
var AppVersion AppVersionInfo
func (*AppVersionInfo) Extended ¶
func (v *AppVersionInfo) Extended() string
func (*AppVersionInfo) Line ¶
func (v *AppVersionInfo) Line() string
func (*AppVersionInfo) NewMetricsCollector ¶
func (v *AppVersionInfo) NewMetricsCollector() *prometheus.GaugeVec
NewMetricsCollector returns a prometheus.Collector which represents current build information.
func (*AppVersionInfo) Printer ¶
func (v *AppVersionInfo) Printer(c *cli.Context)
func (*AppVersionInfo) ShortLine ¶
func (v *AppVersionInfo) ShortLine() string
func (*AppVersionInfo) UserAgent ¶
func (v *AppVersionInfo) UserAgent() string
type Artifact ¶
type Artifact struct { Name string `json:"name"` Untracked bool `json:"untracked"` Paths ArtifactPaths `json:"paths"` When ArtifactWhen `json:"when"` ExpireIn string `json:"expire_in"` }
func (Artifact) ShouldUpload ¶
type ArtifactPaths ¶
type ArtifactPaths []string
type ArtifactWhen ¶
type ArtifactWhen string
const ( ArtifactWhenOnFailure ArtifactWhen = "on_failure" ArtifactWhenOnSuccess ArtifactWhen = "on_success" ArtifactWhenAlways ArtifactWhen = "always" )
func (ArtifactWhen) OnFailure ¶
func (when ArtifactWhen) OnFailure() bool
func (ArtifactWhen) OnSuccess ¶
func (when ArtifactWhen) OnSuccess() bool
type Build ¶
type Build struct { JobResponse `yaml:",inline"` SystemInterrupt chan os.Signal `json:"-" yaml:"-"` RootDir string `json:"-" yaml:"-"` BuildDir string `json:"-" yaml:"-"` CacheDir string `json:"-" yaml:"-"` Hostname string `json:"-" yaml:"-"` Runner *RunnerConfig `json:"runner"` ExecutorData ExecutorData ExecutorFeatures FeaturesInfo `json:"-" yaml:"-"` // Unique ID for all running builds on this runner RunnerID int `json:"runner_id"` // Unique ID for all running builds on this runner and this project ProjectRunnerID int `json:"project_runner_id"` CurrentStage BuildStage CurrentState BuildRuntimeState // contains filtered or unexported fields }
func (*Build) CurrentExecutorStage ¶
func (b *Build) CurrentExecutorStage() ExecutorStage
func (*Build) FullProjectDir ¶
func (*Build) GetAllVariables ¶
func (b *Build) GetAllVariables() JobVariables
func (*Build) GetBuildTimeout ¶
func (*Build) GetCITLSVariables ¶
func (b *Build) GetCITLSVariables() JobVariables
func (*Build) GetCacheRequestTimeout ¶
func (*Build) GetDefaultVariables ¶
func (b *Build) GetDefaultVariables() JobVariables
func (*Build) GetDockerAuthConfig ¶
func (*Build) GetDownloadArtifactsAttempts ¶
func (*Build) GetGetSourcesAttempts ¶
func (*Build) GetGitCheckout ¶
func (*Build) GetGitDepth ¶
func (*Build) GetGitStrategy ¶
func (b *Build) GetGitStrategy() GitStrategy
func (*Build) GetGitTLSVariables ¶
func (b *Build) GetGitTLSVariables() JobVariables
func (*Build) GetRemoteURL ¶
GetRemoteURL checks if the default clone URL is overwritten by the runner configuration option: 'CloneURL'. If it is, we use that to create the clone URL.
func (*Build) GetRestoreCacheAttempts ¶
func (*Build) GetSharedEnvVariable ¶
func (b *Build) GetSharedEnvVariable() JobVariable
func (*Build) GetSubmoduleStrategy ¶
func (b *Build) GetSubmoduleStrategy() SubmoduleStrategy
func (*Build) IsDebugTraceEnabled ¶
func (*Build) IsSharedEnv ¶
func (*Build) ProjectSlug ¶
func (*Build) ProjectUniqueDir ¶
func (*Build) ProjectUniqueName ¶
func (*Build) StartBuild ¶
type BuildError ¶
type BuildError struct {
Inner error
}
func (*BuildError) Error ¶
func (b *BuildError) Error() string
type BuildLogger ¶
type BuildLogger struct {
// contains filtered or unexported fields
}
func NewBuildLogger ¶
func NewBuildLogger(log JobTrace, entry *logrus.Entry) BuildLogger
func (*BuildLogger) Debugln ¶
func (e *BuildLogger) Debugln(args ...interface{})
func (*BuildLogger) Errorln ¶
func (e *BuildLogger) Errorln(args ...interface{})
func (*BuildLogger) Infoln ¶
func (e *BuildLogger) Infoln(args ...interface{})
func (*BuildLogger) Println ¶
func (e *BuildLogger) Println(args ...interface{})
func (*BuildLogger) SendRawLog ¶
func (e *BuildLogger) SendRawLog(args ...interface{})
func (*BuildLogger) SoftErrorln ¶
func (e *BuildLogger) SoftErrorln(args ...interface{})
func (*BuildLogger) Warningln ¶
func (e *BuildLogger) Warningln(args ...interface{})
type BuildRuntimeState ¶
type BuildRuntimeState string
const ( BuildRunStatePending BuildRuntimeState = "pending" BuildRunRuntimeRunning BuildRuntimeState = "running" BuildRunRuntimeFinished BuildRuntimeState = "finished" BuildRunRuntimeCanceled BuildRuntimeState = "canceled" BuildRunRuntimeTerminated BuildRuntimeState = "terminated" BuildRunRuntimeTimedout BuildRuntimeState = "timedout" )
type BuildStage ¶
type BuildStage string
const ( BuildStagePrepare BuildStage = "prepare_script" BuildStageGetSources BuildStage = "get_sources" BuildStageRestoreCache BuildStage = "restore_cache" BuildStageDownloadArtifacts BuildStage = "download_artifacts" BuildStageUserScript BuildStage = "build_script" BuildStageAfterScript BuildStage = "after_script" BuildStageArchiveCache BuildStage = "archive_cache" BuildStageUploadArtifacts BuildStage = "upload_artifacts" )
type Cache ¶
type Cache struct { Key string `json:"key"` Untracked bool `json:"untracked"` Policy CachePolicy `json:"policy"` Paths ArtifactPaths `json:"paths"` }
func (Cache) CheckPolicy ¶
func (c Cache) CheckPolicy(wanted CachePolicy) (bool, error)
type CacheConfig ¶
type CacheConfig struct { Type string `toml:"Type,omitempty" long:"type" env:"CACHE_TYPE" description:"Select caching method: s3, to use S3 buckets"` ServerAddress string `` /* 138-byte string literal not displayed */ AccessKey string `toml:"AccessKey,omitempty" long:"s3-access-key" env:"S3_ACCESS_KEY" description:"S3 Access Key"` SecretKey string `toml:"SecretKey,omitempty" long:"s3-secret-key" env:"S3_SECRET_KEY" description:"S3 Secret Key"` BucketName string `` /* 130-byte string literal not displayed */ BucketLocation string `toml:"BucketLocation,omitempty" long:"s3-bucket-location" env:"S3_BUCKET_LOCATION" description:"Name of S3 region"` Insecure bool `toml:"Insecure,omitempty" long:"s3-insecure" env:"S3_CACHE_INSECURE" description:"Use insecure mode (without https)"` Path string `toml:"Path,omitempty" long:"s3-cache-path" env:"S3_CACHE_PATH" description:"Name of the path to prepend to the cache URL"` }
type CachePolicy ¶
type CachePolicy string
const ( CachePolicyUndefined CachePolicy = "" CachePolicyPullPush CachePolicy = "pull-push" CachePolicyPull CachePolicy = "pull" CachePolicyPush CachePolicy = "push" )
type Config ¶
type Config struct { MetricsServerAddress string `toml:"metrics_server,omitempty" json:"metrics_server"` Concurrent int `toml:"concurrent" json:"concurrent"` CheckInterval int `toml:"check_interval" json:"check_interval" description:"Define active checking interval of jobs"` LogLevel *string `toml:"log_level" json:"log_level" description:"Define log level (one of: panic, fatal, error, warning, info, debug)"` User string `toml:"user,omitempty" json:"user"` Runners []*RunnerConfig `toml:"runners" json:"runners"` SentryDSN *string `toml:"sentry_dsn"` ModTime time.Time `toml:"-"` Loaded bool `toml:"-"` }
func (*Config) GetCheckInterval ¶
func (*Config) LoadConfig ¶
func (*Config) SaveConfig ¶
func (*Config) StatConfig ¶
type ContainerCommand ¶
type ContainerCommand []string
var (
ContainerCommandBuild ContainerCommand = []string{"gitlab-runner-build"}
)
type Credentials ¶
type Dependencies ¶
type Dependencies []Dependency
type Dependency ¶
type Dependency struct { ID int `json:"id"` Token string `json:"token"` Name string `json:"name"` ArtifactsFile DependencyArtifactsFile `json:"artifacts_file"` }
type DependencyArtifactsFile ¶
type DockerConfig ¶
type DockerConfig struct { docker_helpers.DockerCredentials Hostname string `toml:"hostname,omitempty" json:"hostname" long:"hostname" env:"DOCKER_HOSTNAME" description:"Custom container hostname"` Image string `toml:"image" json:"image" long:"image" env:"DOCKER_IMAGE" description:"Docker image to be used"` Runtime string `toml:"runtime,omitempty" json:"runtime" long:"runtime" env:"DOCKER_RUNTIME" description:"Docker runtime to be used"` CPUSetCPUs string `` /* 159-byte string literal not displayed */ CPUS string `toml:"cpus,omitempty" json:"cpus" long:"cpus" env:"DOCKER_CPUS" description:"Number of CPUs"` DNS []string `toml:"dns,omitempty" json:"dns" long:"dns" env:"DOCKER_DNS" description:"A list of DNS servers for the container to use"` DNSSearch []string `` /* 130-byte string literal not displayed */ Privileged bool `` /* 138-byte string literal not displayed */ UsernsMode string `toml:"userns_mode,omitempty" json:"userns_mode" long:"userns" env:"DOCKER_USERNS_MODE" description:"User namespace to use"` CapAdd []string `toml:"cap_add" json:"cap_add" long:"cap-add" env:"DOCKER_CAP_ADD" description:"Add Linux capabilities"` CapDrop []string `toml:"cap_drop" json:"cap_drop" long:"cap-drop" env:"DOCKER_CAP_DROP" description:"Drop Linux capabilities"` SecurityOpt []string `toml:"security_opt" json:"security_opt" long:"security-opt" env:"DOCKER_SECURITY_OPT" description:"Security Options"` Devices []string `toml:"devices" json:"devices" long:"devices" env:"DOCKER_DEVICES" description:"Add a host device to the container"` DisableCache bool `` /* 142-byte string literal not displayed */ Volumes []string `toml:"volumes,omitempty" json:"volumes" long:"volumes" env:"DOCKER_VOLUMES" description:"Bind mount a volumes"` VolumeDriver string `` /* 138-byte string literal not displayed */ CacheDir string `` /* 129-byte string literal not displayed */ ExtraHosts []string `` /* 137-byte string literal not displayed */ VolumesFrom []string `` /* 161-byte string literal not displayed */ NetworkMode string `` /* 143-byte string literal not displayed */ Links []string `toml:"links,omitempty" json:"links" long:"links" env:"DOCKER_LINKS" description:"Add link to another container"` Services []string `` /* 136-byte string literal not displayed */ WaitForServicesTimeout int `` /* 197-byte string literal not displayed */ AllowedImages []string `` /* 142-byte string literal not displayed */ AllowedServices []string `` /* 152-byte string literal not displayed */ PullPolicy DockerPullPolicy `` /* 154-byte string literal not displayed */ ShmSize int64 `` /* 141-byte string literal not displayed */ Tmpfs map[string]string `` /* 344-byte string literal not displayed */ ServicesTmpfs map[string]string `` /* 388-byte string literal not displayed */ SysCtls DockerSysCtls `` /* 178-byte string literal not displayed */ HelperImage string `` /* 195-byte string literal not displayed */ }
func (*DockerConfig) GetNanoCPUs ¶
func (c *DockerConfig) GetNanoCPUs() (int64, error)
type DockerMachine ¶
type DockerMachine struct { IdleCount int `long:"idle-nodes" env:"MACHINE_IDLE_COUNT" description:"Maximum idle machines"` IdleTime int `toml:"IdleTime,omitzero" long:"idle-time" env:"MACHINE_IDLE_TIME" description:"Minimum time after node can be destroyed"` MaxBuilds int `` /* 128-byte string literal not displayed */ MachineDriver string `long:"machine-driver" env:"MACHINE_DRIVER" description:"The driver to use when creating machine"` MachineName string `long:"machine-name" env:"MACHINE_NAME" description:"The template for machine name (needs to include %s)"` MachineOptions []string `long:"machine-options" env:"MACHINE_OPTIONS" description:"Additional machine creation options"` OffPeakPeriods []string `long:"off-peak-periods" env:"MACHINE_OFF_PEAK_PERIODS" description:"Time periods when the scheduler is in the OffPeak mode"` OffPeakTimezone string `long:"off-peak-timezone" env:"MACHINE_OFF_PEAK_TIMEZONE" description:"Timezone for the OffPeak periods (defaults to Local)"` OffPeakIdleCount int `` /* 138-byte string literal not displayed */ OffPeakIdleTime int `` /* 158-byte string literal not displayed */ // contains filtered or unexported fields }
func (*DockerMachine) CompileOffPeakPeriods ¶
func (c *DockerMachine) CompileOffPeakPeriods() (err error)
func (*DockerMachine) GetIdleCount ¶
func (c *DockerMachine) GetIdleCount() int
func (*DockerMachine) GetIdleTime ¶
func (c *DockerMachine) GetIdleTime() int
type DockerPullPolicy ¶
type DockerPullPolicy string
func (DockerPullPolicy) Get ¶
func (p DockerPullPolicy) Get() (DockerPullPolicy, error)
Get returns one of the predefined values or returns an error if the value can't match the predefined
type DockerSysCtls ¶
type DownloadState ¶
type DownloadState int
const ( DownloadSucceeded DownloadState = iota DownloadForbidden DownloadFailed DownloadNotFound )
type Executor ¶
type Executor interface { Shell() *ShellScriptInfo Prepare(options ExecutorPrepareOptions) error Run(cmd ExecutorCommand) error Finish(err error) Cleanup() GetCurrentStage() ExecutorStage SetCurrentStage(stage ExecutorStage) }
func NewExecutor ¶
type ExecutorCommand ¶
type ExecutorData ¶
type ExecutorData interface{}
type ExecutorPrepareOptions ¶
type ExecutorProvider ¶
type ExecutorProvider interface { CanCreate() bool Create() Executor Acquire(config *RunnerConfig) (ExecutorData, error) Release(config *RunnerConfig, data ExecutorData) error GetFeatures(features *FeaturesInfo) }
func GetExecutor ¶
func GetExecutor(executor string) ExecutorProvider
func GetExecutorProviders ¶
func GetExecutorProviders() (providers []ExecutorProvider)
type ExecutorStage ¶
type ExecutorStage string
const ( ExecutorStageCreated ExecutorStage = "created" ExecutorStagePrepare ExecutorStage = "prepare" ExecutorStageFinish ExecutorStage = "finish" ExecutorStageCleanup ExecutorStage = "cleanup" )
type FailuresCollector ¶
type FailuresCollector interface {
RecordFailure(reason JobFailureReason, runnerDescription string)
}
type FeaturesInfo ¶
type GitInfo ¶
type GitInfo struct { RepoURL string `json:"repo_url"` Ref string `json:"ref"` Sha string `json:"sha"` BeforeSha string `json:"before_sha"` RefType GitInfoRefType `json:"ref_type"` }
type GitInfoRefType ¶
type GitInfoRefType string
const ( RefTypeBranch GitInfoRefType = "branch" RefTypeTag GitInfoRefType = "tag" )
type GitlabFeatures ¶
type GitlabFeatures struct {
TraceSections bool `json:"trace_sections"`
}
type JobCredentials ¶
type JobCredentials struct { ID int `long:"id" env:"CI_JOB_ID" description:"The build ID to upload artifacts for"` Token string `long:"token" env:"CI_JOB_TOKEN" required:"true" description:"Build token"` URL string `long:"url" env:"CI_SERVER_URL" required:"true" description:"GitLab CI URL"` TLSCAFile string `` /* 129-byte string literal not displayed */ TLSCertFile string `` /* 141-byte string literal not displayed */ TLSKeyFile string `` /* 139-byte string literal not displayed */ }
func (*JobCredentials) GetTLSCAFile ¶
func (j *JobCredentials) GetTLSCAFile() string
func (*JobCredentials) GetTLSCertFile ¶
func (j *JobCredentials) GetTLSCertFile() string
func (*JobCredentials) GetTLSKeyFile ¶
func (j *JobCredentials) GetTLSKeyFile() string
func (*JobCredentials) GetToken ¶
func (j *JobCredentials) GetToken() string
func (*JobCredentials) GetURL ¶
func (j *JobCredentials) GetURL() string
type JobFailureReason ¶
type JobFailureReason string
const ( NoneFailure JobFailureReason = "" ScriptFailure JobFailureReason = "script_failure" RunnerSystemFailure JobFailureReason = "runner_system_failure" )
type JobRequest ¶
type JobRequest struct { Info VersionInfo `json:"info,omitempty"` Token string `json:"token,omitempty"` LastUpdate string `json:"last_update,omitempty"` }
type JobResponse ¶
type JobResponse struct { ID int `json:"id"` Token string `json:"token"` AllowGitFetch bool `json:"allow_git_fetch"` JobInfo JobInfo `json:"job_info"` GitInfo GitInfo `json:"git_info"` RunnerInfo RunnerInfo `json:"runner_info"` Variables JobVariables `json:"variables"` Steps Steps `json:"steps"` Image Image `json:"image"` Services Services `json:"services"` Artifacts Artifacts `json:"artifacts"` Cache Caches `json:"cache"` Credentials []Credentials `json:"credentials"` Dependencies Dependencies `json:"dependencies"` Features GitlabFeatures `json:"features"` TLSCAChain string `json:"-"` TLSAuthCert string `json:"-"` TLSAuthKey string `json:"-"` }
func GetFailedBuild ¶
func GetFailedBuild() (JobResponse, error)
func GetLongRunningBuild ¶
func GetLongRunningBuild() (JobResponse, error)
func GetMultilineBashBuild ¶
func GetMultilineBashBuild() (JobResponse, error)
func GetRemoteBrokenTLSBuild ¶
func GetRemoteBrokenTLSBuild() (job JobResponse, err error)
func GetRemoteFailedBuild ¶
func GetRemoteFailedBuild() (JobResponse, error)
func GetRemoteGitLabComTLSBuild ¶
func GetRemoteGitLabComTLSBuild() (job JobResponse, err error)
func GetRemoteLongRunningBuild ¶
func GetRemoteLongRunningBuild() (JobResponse, error)
func GetRemoteSuccessfulBuild ¶
func GetRemoteSuccessfulBuild() (JobResponse, error)
func GetRemoteSuccessfulBuildWithAfterScript ¶
func GetRemoteSuccessfulBuildWithAfterScript() (JobResponse, error)
func GetRemoteSuccessfulBuildWithDumpedVariables ¶
func GetRemoteSuccessfulBuildWithDumpedVariables() (response JobResponse, err error)
func GetSuccessfulBuild ¶
func GetSuccessfulBuild() (JobResponse, error)
func (*JobResponse) RepoCleanURL ¶
func (j *JobResponse) RepoCleanURL() string
type JobTrace ¶
type JobTrace interface { io.Writer Success() Fail(err error, failureReason JobFailureReason) SetCancelFunc(cancelFunc context.CancelFunc) SetFailuresCollector(fc FailuresCollector) IsStdout() bool }
type JobTracePatch ¶
type JobVariable ¶
type JobVariable struct { Key string `json:"key"` Value string `json:"value"` Public bool `json:"public"` Internal bool `json:"-"` File bool `json:"file"` }
func ParseVariable ¶
func ParseVariable(text string) (variable JobVariable, err error)
func (JobVariable) String ¶
func (b JobVariable) String() string
type JobVariables ¶
type JobVariables []JobVariable
func (JobVariables) Expand ¶
func (b JobVariables) Expand() (variables JobVariables)
func (JobVariables) ExpandValue ¶
func (b JobVariables) ExpandValue(value string) string
func (JobVariables) Get ¶
func (b JobVariables) Get(key string) string
func (JobVariables) PublicOrInternal ¶
func (b JobVariables) PublicOrInternal() (variables JobVariables)
func (JobVariables) StringList ¶
func (b JobVariables) StringList() (variables []string)
type KubernetesConfig ¶
type KubernetesConfig struct { Host string `` /* 151-byte string literal not displayed */ CertFile string `` /* 145-byte string literal not displayed */ KeyFile string `` /* 141-byte string literal not displayed */ CAFile string `` /* 140-byte string literal not displayed */ BearerTokenOverwriteAllowed bool `` /* 248-byte string literal not displayed */ BearerToken string `` /* 181-byte string literal not displayed */ Image string `` /* 137-byte string literal not displayed */ Namespace string `` /* 127-byte string literal not displayed */ NamespaceOverwriteAllowed string `` /* 220-byte string literal not displayed */ Privileged bool `` /* 156-byte string literal not displayed */ CPULimit string `` /* 146-byte string literal not displayed */ MemoryLimit string `` /* 164-byte string literal not displayed */ ServiceCPULimit string `` /* 186-byte string literal not displayed */ ServiceMemoryLimit string `` /* 204-byte string literal not displayed */ HelperCPULimit string `` /* 181-byte string literal not displayed */ HelperMemoryLimit string `` /* 199-byte string literal not displayed */ CPURequest string `` /* 159-byte string literal not displayed */ MemoryRequest string `` /* 174-byte string literal not displayed */ ServiceCPURequest string `` /* 199-byte string literal not displayed */ ServiceMemoryRequest string `` /* 213-byte string literal not displayed */ HelperCPURequest string `` /* 194-byte string literal not displayed */ HelperMemoryRequest string `` /* 208-byte string literal not displayed */ PullPolicy KubernetesPullPolicy `` /* 231-byte string literal not displayed */ NodeSelector map[string]string `` /* 239-byte string literal not displayed */ ImagePullSecrets []string `` /* 205-byte string literal not displayed */ HelperImage string `` /* 199-byte string literal not displayed */ TerminationGracePeriodSeconds int64 `` /* 330-byte string literal not displayed */ PollInterval int `` /* 224-byte string literal not displayed */ PollTimeout int `` /* 325-byte string literal not displayed */ PodLabels map[string]string `` /* 268-byte string literal not displayed */ ServiceAccount string `` /* 195-byte string literal not displayed */ ServiceAccountOverwriteAllowed string `` /* 240-byte string literal not displayed */ PodAnnotations map[string]string `` /* 296-byte string literal not displayed */ PodAnnotationsOverwriteAllowed string `` /* 243-byte string literal not displayed */ Volumes KubernetesVolumes `toml:"volumes"` }
func (*KubernetesConfig) GetHelperImage ¶
func (c *KubernetesConfig) GetHelperImage() string
func (*KubernetesConfig) GetPollAttempts ¶
func (c *KubernetesConfig) GetPollAttempts() int
func (*KubernetesConfig) GetPollInterval ¶
func (c *KubernetesConfig) GetPollInterval() int
type KubernetesConfigMap ¶
type KubernetesConfigMap struct { Name string `toml:"name" json:"name" description:"The name of the volume and ConfigMap to use"` MountPath string `toml:"mount_path" description:"Path where volume should be mounted inside of container"` ReadOnly bool `toml:"read_only,omitempty" description:"If this volume should be mounted read only"` Items map[string]string `toml:"items,omitempty" description:"Key-to-path mapping for keys from the config map that should be used."` }
type KubernetesEmptyDir ¶
type KubernetesEmptyDir struct { Name string `toml:"name" json:"name" description:"The name of the volume and EmptyDir to use"` MountPath string `toml:"mount_path" description:"Path where volume should be mounted inside of container"` Medium string `toml:"medium,omitempty" description:"Set to 'Memory' to have a tmpfs"` }
type KubernetesHostPath ¶
type KubernetesHostPath struct { Name string `toml:"name" json:"name" description:"The name of the volume"` MountPath string `toml:"mount_path" description:"Path where volume should be mounted inside of container"` ReadOnly bool `toml:"read_only,omitempty" description:"If this volume should be mounted read only"` HostPath string `toml:"host_path,omitempty" description:"Path from the host that should be mounted as a volume"` }
type KubernetesPVC ¶
type KubernetesPVC struct { Name string `toml:"name" json:"name" description:"The name of the volume and PVC to use"` MountPath string `toml:"mount_path" description:"Path where volume should be mounted inside of container"` ReadOnly bool `toml:"read_only,omitempty" description:"If this volume should be mounted read only"` }
type KubernetesPullPolicy ¶
type KubernetesPullPolicy string
func (KubernetesPullPolicy) Get ¶
func (p KubernetesPullPolicy) Get() (KubernetesPullPolicy, error)
Get returns one of the predefined values in kubernetes notation or returns an error if the value can't match the predefined
type KubernetesSecret ¶
type KubernetesSecret struct { Name string `toml:"name" json:"name" description:"The name of the volume and Secret to use"` MountPath string `toml:"mount_path" description:"Path where volume should be mounted inside of container"` ReadOnly bool `toml:"read_only,omitempty" description:"If this volume should be mounted read only"` Items map[string]string `toml:"items,omitempty" description:"Key-to-path mapping for keys from the secret that should be used."` }
type KubernetesVolumes ¶
type KubernetesVolumes struct { HostPaths []KubernetesHostPath `toml:"host_path" description:"The host paths which will be mounted"` PVCs []KubernetesPVC `toml:"pvc" description:"The persistent volume claims that will be mounted"` ConfigMaps []KubernetesConfigMap `toml:"config_map" description:"The config maps which will be mounted as volumes"` Secrets []KubernetesSecret `toml:"secret" description:"The secret maps which will be mounted"` EmptyDirs []KubernetesEmptyDir `toml:"empty_dir" description:"The empty dirs which will be mounted"` }
type MockCommander ¶
MockCommander is an autogenerated mock type for the Commander type
func (*MockCommander) Execute ¶
func (_m *MockCommander) Execute(c *cli.Context)
Execute provides a mock function with given fields: c
type MockExecutor ¶
MockExecutor is an autogenerated mock type for the Executor type
func (*MockExecutor) Cleanup ¶
func (_m *MockExecutor) Cleanup()
Cleanup provides a mock function with given fields:
func (*MockExecutor) Finish ¶
func (_m *MockExecutor) Finish(err error)
Finish provides a mock function with given fields: err
func (*MockExecutor) GetCurrentStage ¶
func (_m *MockExecutor) GetCurrentStage() ExecutorStage
GetCurrentStage provides a mock function with given fields:
func (*MockExecutor) Prepare ¶
func (_m *MockExecutor) Prepare(options ExecutorPrepareOptions) error
Prepare provides a mock function with given fields: options
func (*MockExecutor) Run ¶
func (_m *MockExecutor) Run(cmd ExecutorCommand) error
Run provides a mock function with given fields: cmd
func (*MockExecutor) SetCurrentStage ¶
func (_m *MockExecutor) SetCurrentStage(stage ExecutorStage)
SetCurrentStage provides a mock function with given fields: stage
func (*MockExecutor) Shell ¶
func (_m *MockExecutor) Shell() *ShellScriptInfo
Shell provides a mock function with given fields:
type MockExecutorData ¶
MockExecutorData is an autogenerated mock type for the ExecutorData type
type MockExecutorProvider ¶
MockExecutorProvider is an autogenerated mock type for the ExecutorProvider type
func (*MockExecutorProvider) Acquire ¶
func (_m *MockExecutorProvider) Acquire(config *RunnerConfig) (ExecutorData, error)
Acquire provides a mock function with given fields: config
func (*MockExecutorProvider) CanCreate ¶
func (_m *MockExecutorProvider) CanCreate() bool
CanCreate provides a mock function with given fields:
func (*MockExecutorProvider) Create ¶
func (_m *MockExecutorProvider) Create() Executor
Create provides a mock function with given fields:
func (*MockExecutorProvider) GetFeatures ¶
func (_m *MockExecutorProvider) GetFeatures(features *FeaturesInfo)
GetFeatures provides a mock function with given fields: features
func (*MockExecutorProvider) Release ¶
func (_m *MockExecutorProvider) Release(config *RunnerConfig, data ExecutorData) error
Release provides a mock function with given fields: config, data
type MockJobTrace ¶
MockJobTrace is an autogenerated mock type for the JobTrace type
func (*MockJobTrace) Fail ¶
func (_m *MockJobTrace) Fail(err error, failureReason JobFailureReason)
Fail provides a mock function with given fields: err
func (*MockJobTrace) IsStdout ¶
func (_m *MockJobTrace) IsStdout() bool
IsStdout provides a mock function with given fields:
func (*MockJobTrace) SetCancelFunc ¶
func (_m *MockJobTrace) SetCancelFunc(cancelFunc context.CancelFunc)
SetCancelFunc provides a mock function with given fields: cancelFunc
func (*MockJobTrace) Success ¶
func (_m *MockJobTrace) Success()
Success provides a mock function with given fields:
type MockJobTracePatch ¶
MockJobTracePatch is an autogenerated mock type for the JobTracePatch type
func (*MockJobTracePatch) Limit ¶
func (_m *MockJobTracePatch) Limit() int
Limit provides a mock function with given fields:
func (*MockJobTracePatch) Offset ¶
func (_m *MockJobTracePatch) Offset() int
Offset provides a mock function with given fields:
func (*MockJobTracePatch) Patch ¶
func (_m *MockJobTracePatch) Patch() []byte
Patch provides a mock function with given fields:
func (*MockJobTracePatch) SetNewOffset ¶
func (_m *MockJobTracePatch) SetNewOffset(newOffset int)
SetNewOffset provides a mock function with given fields: newOffset
func (*MockJobTracePatch) ValidateRange ¶
func (_m *MockJobTracePatch) ValidateRange() bool
ValidateRange provides a mock function with given fields:
type MockNetwork ¶
MockNetwork is an autogenerated mock type for the Network type
func (*MockNetwork) DownloadArtifacts ¶
func (_m *MockNetwork) DownloadArtifacts(config JobCredentials, artifactsFile string) DownloadState
DownloadArtifacts provides a mock function with given fields: config, artifactsFile
func (*MockNetwork) PatchTrace ¶
func (_m *MockNetwork) PatchTrace(config RunnerConfig, jobCredentials *JobCredentials, tracePart JobTracePatch) UpdateState
PatchTrace provides a mock function with given fields: config, jobCredentials, tracePart
func (*MockNetwork) ProcessJob ¶
func (_m *MockNetwork) ProcessJob(config RunnerConfig, buildCredentials *JobCredentials) JobTrace
ProcessJob provides a mock function with given fields: config, buildCredentials
func (*MockNetwork) RegisterRunner ¶
func (_m *MockNetwork) RegisterRunner(config RunnerCredentials, description string, tags string, runUntagged bool, locked bool) *RegisterRunnerResponse
RegisterRunner provides a mock function with given fields: config, description, tags, runUntagged, locked
func (*MockNetwork) RequestJob ¶
func (_m *MockNetwork) RequestJob(config RunnerConfig) (*JobResponse, bool)
RequestJob provides a mock function with given fields: config
func (*MockNetwork) UnregisterRunner ¶
func (_m *MockNetwork) UnregisterRunner(config RunnerCredentials) bool
UnregisterRunner provides a mock function with given fields: config
func (*MockNetwork) UpdateJob ¶
func (_m *MockNetwork) UpdateJob(config RunnerConfig, jobCredentials *JobCredentials, jobInfo UpdateJobInfo) UpdateState
UpdateJob provides a mock function with given fields: config, jobCredentials, id, state, trace
func (*MockNetwork) UploadArtifacts ¶
func (_m *MockNetwork) UploadArtifacts(config JobCredentials, artifactsFile string) UploadState
UploadArtifacts provides a mock function with given fields: config, artifactsFile
func (*MockNetwork) UploadRawArtifacts ¶
func (_m *MockNetwork) UploadRawArtifacts(config JobCredentials, reader io.Reader, baseName string, expireIn string) UploadState
UploadRawArtifacts provides a mock function with given fields: config, reader, baseName, expireIn
func (*MockNetwork) VerifyRunner ¶
func (_m *MockNetwork) VerifyRunner(config RunnerCredentials) bool
VerifyRunner provides a mock function with given fields: config
type MockShell ¶
MockShell is an autogenerated mock type for the Shell type
func (*MockShell) GenerateScript ¶
func (_m *MockShell) GenerateScript(buildStage BuildStage, info ShellScriptInfo) (string, error)
GenerateScript provides a mock function with given fields: buildStage, info
func (*MockShell) GetConfiguration ¶
func (_m *MockShell) GetConfiguration(info ShellScriptInfo) (*ShellConfiguration, error)
GetConfiguration provides a mock function with given fields: info
func (*MockShell) GetFeatures ¶
func (_m *MockShell) GetFeatures(features *FeaturesInfo)
GetFeatures provides a mock function with given fields: features
type Network ¶
type Network interface { RegisterRunner(config RunnerCredentials, description, tags string, runUntagged, locked bool) *RegisterRunnerResponse VerifyRunner(config RunnerCredentials) bool UnregisterRunner(config RunnerCredentials) bool RequestJob(config RunnerConfig) (*JobResponse, bool) UpdateJob(config RunnerConfig, jobCredentials *JobCredentials, jobInfo UpdateJobInfo) UpdateState PatchTrace(config RunnerConfig, jobCredentials *JobCredentials, tracePart JobTracePatch) UpdateState DownloadArtifacts(config JobCredentials, artifactsFile string) DownloadState UploadRawArtifacts(config JobCredentials, reader io.Reader, baseName string, expireIn string) UploadState UploadArtifacts(config JobCredentials, artifactsFile string) UploadState ProcessJob(config RunnerConfig, buildCredentials *JobCredentials) JobTrace }
type ParallelsConfig ¶
type RegisterRunnerRequest ¶
type RegisterRunnerResponse ¶
type RegisterRunnerResponse struct {
Token string `json:"token,omitempty"`
}
type RunnerConfig ¶
type RunnerConfig struct { Name string `toml:"name" json:"name" short:"name" long:"description" env:"RUNNER_NAME" description:"Runner name"` Limit int `` /* 130-byte string literal not displayed */ OutputLimit int `` /* 126-byte string literal not displayed */ RequestConcurrency int `` /* 146-byte string literal not displayed */ RunnerCredentials RunnerSettings }
func (*RunnerConfig) GetRequestConcurrency ¶
func (c *RunnerConfig) GetRequestConcurrency() int
func (*RunnerConfig) GetVariables ¶
func (c *RunnerConfig) GetVariables() JobVariables
func (*RunnerConfig) String ¶
func (c *RunnerConfig) String() string
type RunnerCredentials ¶
type RunnerCredentials struct { URL string `toml:"url" json:"url" short:"u" long:"url" env:"CI_SERVER_URL" required:"true" description:"Runner URL"` Token string `toml:"token" json:"token" short:"t" long:"token" env:"CI_SERVER_TOKEN" required:"true" description:"Runner token"` TLSCAFile string `` /* 177-byte string literal not displayed */ TLSCertFile string `` /* 181-byte string literal not displayed */ TLSKeyFile string `` /* 177-byte string literal not displayed */ }
func (*RunnerCredentials) GetTLSCAFile ¶
func (c *RunnerCredentials) GetTLSCAFile() string
func (*RunnerCredentials) GetTLSCertFile ¶
func (c *RunnerCredentials) GetTLSCertFile() string
func (*RunnerCredentials) GetTLSKeyFile ¶
func (c *RunnerCredentials) GetTLSKeyFile() string
func (*RunnerCredentials) GetToken ¶
func (c *RunnerCredentials) GetToken() string
func (*RunnerCredentials) GetURL ¶
func (c *RunnerCredentials) GetURL() string
func (*RunnerCredentials) Log ¶
func (c *RunnerCredentials) Log() *log.Entry
func (*RunnerCredentials) SameAs ¶
func (c *RunnerCredentials) SameAs(other *RunnerCredentials) bool
func (*RunnerCredentials) ShortDescription ¶
func (c *RunnerCredentials) ShortDescription() string
func (*RunnerCredentials) UniqueID ¶
func (c *RunnerCredentials) UniqueID() string
type RunnerInfo ¶
type RunnerInfo struct {
Timeout int `json:"timeout"`
}
type RunnerSettings ¶
type RunnerSettings struct { Executor string `` /* 140-byte string literal not displayed */ BuildsDir string `` /* 135-byte string literal not displayed */ CacheDir string `` /* 135-byte string literal not displayed */ CloneURL string `` /* 151-byte string literal not displayed */ Environment []string `` /* 148-byte string literal not displayed */ PreCloneScript string `` /* 187-byte string literal not displayed */ PreBuildScript string `` /* 214-byte string literal not displayed */ PostBuildScript string `` /* 220-byte string literal not displayed */ Shell string `toml:"shell,omitempty" json:"shell" long:"shell" env:"RUNNER_SHELL" description:"Select bash, cmd or powershell"` SSH *ssh.Config `toml:"ssh,omitempty" json:"ssh" group:"ssh executor" namespace:"ssh"` Docker *DockerConfig `toml:"docker,omitempty" json:"docker" group:"docker executor" namespace:"docker"` Parallels *ParallelsConfig `toml:"parallels,omitempty" json:"parallels" group:"parallels executor" namespace:"parallels"` VirtualBox *VirtualBoxConfig `toml:"virtualbox,omitempty" json:"virtualbox" group:"virtualbox executor" namespace:"virtualbox"` Cache *CacheConfig `toml:"cache,omitempty" json:"cache" group:"cache configuration" namespace:"cache"` Machine *DockerMachine `toml:"machine,omitempty" json:"machine" group:"docker machine provider" namespace:"machine"` Kubernetes *KubernetesConfig `toml:"kubernetes,omitempty" json:"kubernetes" group:"kubernetes executor" namespace:"kubernetes"` }
type Shell ¶
type Shell interface { GetName() string GetFeatures(features *FeaturesInfo) IsDefault() bool GetConfiguration(info ShellScriptInfo) (*ShellConfiguration, error) GenerateScript(buildStage BuildStage, info ShellScriptInfo) (string, error) }
type ShellConfiguration ¶
type ShellConfiguration struct { Environment []string DockerCommand []string Command string Arguments []string PassFile bool Extension string }
func GetShellConfiguration ¶
func GetShellConfiguration(info ShellScriptInfo) (*ShellConfiguration, error)
func (*ShellConfiguration) GetCommandWithArguments ¶
func (s *ShellConfiguration) GetCommandWithArguments() []string
func (*ShellConfiguration) String ¶
func (s *ShellConfiguration) String() string
type ShellScriptInfo ¶
type Step ¶
type Step struct { Name StepName `json:"name"` Script StepScript `json:"script"` Timeout int `json:"timeout"` When StepWhen `json:"when"` AllowFailure bool `json:"allow_failure"` }
type StepScript ¶
type StepScript []string
type SubmoduleStrategy ¶
type SubmoduleStrategy int
const ( SubmoduleInvalid SubmoduleStrategy = iota SubmoduleNone SubmoduleNormal SubmoduleRecursive )
type Trace ¶
type Trace struct { Writer io.Writer CancelFunc context.CancelFunc // contains filtered or unexported fields }
func (*Trace) Fail ¶
func (s *Trace) Fail(err error, failureReason JobFailureReason)
func (*Trace) SetCancelFunc ¶
func (s *Trace) SetCancelFunc(cancelFunc context.CancelFunc)
func (*Trace) SetFailuresCollector ¶
func (s *Trace) SetFailuresCollector(fc FailuresCollector)
type UnregisterRunnerRequest ¶
type UnregisterRunnerRequest struct {
Token string `json:"token,omitempty"`
}
type UpdateJobInfo ¶
type UpdateJobInfo struct { ID int State JobState Trace *string FailureReason JobFailureReason }
type UpdateJobRequest ¶
type UpdateJobRequest struct { Info VersionInfo `json:"info,omitempty"` Token string `json:"token,omitempty"` State JobState `json:"state,omitempty"` FailureReason JobFailureReason `json:"failure_reason,omitempty"` Trace *string `json:"trace,omitempty"` }
type UpdateState ¶
type UpdateState int
const ( UpdateSucceeded UpdateState = iota UpdateNotFound UpdateAbort UpdateFailed UpdateRangeMismatch )
type UploadState ¶
type UploadState int
const ( UploadSucceeded UploadState = iota UploadTooLarge UploadForbidden UploadFailed )
type VerifyRunnerRequest ¶
type VerifyRunnerRequest struct {
Token string `json:"token,omitempty"`
}
type VersionInfo ¶
type VersionInfo struct { Name string `json:"name,omitempty"` Version string `json:"version,omitempty"` Revision string `json:"revision,omitempty"` Platform string `json:"platform,omitempty"` Architecture string `json:"architecture,omitempty"` Executor string `json:"executor,omitempty"` Features FeaturesInfo `json:"features"` }