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 Build
- func (b *Build) FullProjectDir() string
- func (b *Build) GetAllVariables() (variables BuildVariables)
- func (b *Build) GetDefaultVariables() BuildVariables
- func (b *Build) GetDockerAuthConfig() string
- func (b *Build) GetDownloadArtifactsAttempts() int
- func (b *Build) GetGetSourcesAttempts() int
- func (b *Build) GetGitDepth() string
- func (b *Build) GetGitStrategy() GitStrategy
- func (b *Build) GetRestoreCacheAttempts() int
- func (b *Build) GetSubmoduleStrategy() SubmoduleStrategy
- func (b *Build) IsDebugTraceEnabled() 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 BuildTrace) (err error)
- func (b *Build) StartBuild(rootDir, cacheDir string, sharedDir bool)
- func (b *Build) String() string
- type BuildArtifacts
- type BuildCredentials
- type BuildError
- type BuildInfo
- 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) SoftErrorln(args ...interface{})
- func (e *BuildLogger) Warningln(args ...interface{})
- type BuildOptions
- func (m *BuildOptions) Decode(result interface{}, keys ...string) error
- func (m *BuildOptions) Get(keys ...string) (interface{}, bool)
- func (m *BuildOptions) GetString(keys ...string) (result string, ok bool)
- func (m *BuildOptions) GetSubOptions(keys ...string) (result BuildOptions, ok bool)
- func (m *BuildOptions) Sanitize() (err error)
- type BuildResponseCredentials
- type BuildRuntimeState
- type BuildStage
- type BuildState
- type BuildTrace
- type BuildTracePatch
- type BuildVariable
- type BuildVariables
- type CacheConfig
- type Commander
- type Config
- type DeleteRunnerRequest
- type DockerConfig
- type DockerMachine
- type DockerPullPolicy
- type DownloadState
- type Executor
- type ExecutorCommand
- type ExecutorData
- type ExecutorProvider
- type FeaturesInfo
- type GetBuildRequest
- type GetBuildResponse
- func GetFailedBuild() (GetBuildResponse, error)
- func GetLongRunningBuild() (GetBuildResponse, error)
- func GetRemoteFailedBuild() (GetBuildResponse, error)
- func GetRemoteLongRunningBuild() (GetBuildResponse, error)
- func GetRemoteSuccessfulBuild() (GetBuildResponse, error)
- func GetSuccessfulBuild() (GetBuildResponse, error)
- type GitStrategy
- type KubernetesConfig
- type KubernetesPullPolicy
- type MockBuildTrace
- type MockBuildTracePatch
- type MockCommander
- type MockExecutor
- 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 MockNetwork
- func (m *MockNetwork) DeleteRunner(config RunnerCredentials) bool
- func (m *MockNetwork) DownloadArtifacts(config BuildCredentials, artifactsFile string) DownloadState
- func (m *MockNetwork) GetBuild(config RunnerConfig) (*GetBuildResponse, bool)
- func (m *MockNetwork) PatchTrace(config RunnerConfig, buildCredentials *BuildCredentials, ...) UpdateState
- func (m *MockNetwork) ProcessBuild(config RunnerConfig, buildCredentials *BuildCredentials) BuildTrace
- func (m *MockNetwork) RegisterRunner(config RunnerCredentials, description string, tags string, runUntagged bool) *RegisterRunnerResponse
- func (m *MockNetwork) UpdateBuild(config RunnerConfig, id int, state BuildState, trace *string) UpdateState
- func (m *MockNetwork) UploadArtifacts(config BuildCredentials, artifactsFile string) UploadState
- func (m *MockNetwork) UploadRawArtifacts(config BuildCredentials, 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) GetSupportedOptions() []string
- func (m *MockShell) IsDefault() bool
- type Network
- type ParallelsConfig
- type RegisterRunnerRequest
- type RegisterRunnerResponse
- type RunnerConfig
- type RunnerCredentials
- type RunnerSettings
- type Shell
- type ShellConfiguration
- type ShellScriptInfo
- type ShellType
- type SubmoduleStrategy
- type Trace
- type UpdateBuildRequest
- type UpdateState
- type UploadState
- type VerifyRunnerRequest
- type VersionInfo
- type VirtualBoxConfig
Constants ¶
View Source
const ( BuildRunStatePending BuildRuntimeState = "pending" BuildRunRuntimeRunning = "running" BuildRunRuntimeFinished = "finished" BuildRunRuntimeCanceled = "canceled" BuildRunRuntimeTerminated = "terminated" BuildRunRuntimeTimedout = "timedout" )
View Source
const ( BuildStagePrepare BuildStage = "prepare_script" BuildStageGetSources = "get_sources" BuildStageRestoreCache = "restore_cache" BuildStageDownloadArtifacts = "download_artifacts" BuildStageUserScript = "build_script" BuildStageAfterScript = "after_script" BuildStageArchiveCache = "archive_cache" BuildStageUploadArtifacts = "upload_artifacts" )
View Source
const ( PullPolicyAlways = "always" PullPolicyNever = "never" PullPolicyIfNotPresent = "if-not-present" )
View Source
const ( Pending BuildState = "pending" Running = "running" Failed = "failed" Success = "success" )
View Source
const CheckInterval = 3 * time.Second
View Source
const DefaultArtifactDownloadAttempts = 1
View Source
const DefaultExecTimeout = 1800
View Source
const DefaultGetSourcesAttempts = 1
View Source
const DefaultOutputLimit = 4096 // 4MB in kilobytes
View Source
const DefaultRestoreCacheAttempts = 1
View Source
const DefaultTimeout = 7200
View Source
const DefaultWaitForServicesTimeout = 30
View Source
const ForceTraceSentInterval = 30 * time.Second
View Source
const HealthCheckInterval = 3600
View Source
const HealthyChecks = 3
View Source
const KubernetesPollInterval = 3
View Source
const KubernetesPollTimeout = 180
View Source
const NotHealthyCheckInterval = 300
View Source
const PreparationRetries = 3
View Source
const ReloadConfigInterval = 3
View Source
const ShutdownTimeout = 30
View Source
const UpdateInterval = 3 * time.Second
View Source
const UpdateRetryInterval = 3 * time.Second
Variables ¶
View Source
var BRANCH = "HEAD"
View Source
var BUILT = "now"
View Source
var NAME = "gitlab-ci-multi-runner"
View Source
var PreparationRetryInterval = 3 * time.Second
View Source
var REVISION = "HEAD"
View Source
var VERSION = "dev"
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 ¶ added in v1.4.0
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 time.Time `json:"built_at"` OS string `json:"os"` Architecture string `json:"architecture"` }
var AppVersion AppVersionInfo
func (*AppVersionInfo) Extended ¶ added in v1.4.0
func (v *AppVersionInfo) Extended() string
func (*AppVersionInfo) Line ¶ added in v1.4.0
func (v *AppVersionInfo) Line() string
func (*AppVersionInfo) NewMetricsCollector ¶ added in v1.8.0
func (v *AppVersionInfo) NewMetricsCollector() *prometheus.GaugeVec
NewMetricsCollector returns a prometheus.Collector which represents current build information.
func (*AppVersionInfo) Printer ¶ added in v1.4.0
func (v *AppVersionInfo) Printer(c *cli.Context)
func (*AppVersionInfo) ShortLine ¶ added in v1.4.0
func (v *AppVersionInfo) ShortLine() string
func (*AppVersionInfo) UserAgent ¶ added in v1.4.0
func (v *AppVersionInfo) UserAgent() string
type Build ¶
type Build struct { GetBuildResponse `yaml:",inline"` Trace BuildTrace 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 // 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 }
func (*Build) FullProjectDir ¶
func (*Build) GetAllVariables ¶
func (b *Build) GetAllVariables() (variables BuildVariables)
func (*Build) GetDefaultVariables ¶
func (b *Build) GetDefaultVariables() BuildVariables
func (*Build) GetDockerAuthConfig ¶ added in v1.8.0
func (*Build) GetDownloadArtifactsAttempts ¶ added in v1.9.0
func (*Build) GetGetSourcesAttempts ¶ added in v1.9.0
func (*Build) GetGitDepth ¶ added in v1.3.0
func (*Build) GetGitStrategy ¶ added in v1.3.0
func (b *Build) GetGitStrategy() GitStrategy
func (*Build) GetRestoreCacheAttempts ¶ added in v1.9.0
func (*Build) GetSubmoduleStrategy ¶ added in v1.10.0
func (b *Build) GetSubmoduleStrategy() SubmoduleStrategy
func (*Build) IsDebugTraceEnabled ¶ added in v1.7.0
func (*Build) ProjectSlug ¶
func (*Build) ProjectUniqueDir ¶
func (*Build) ProjectUniqueName ¶
func (*Build) StartBuild ¶
type BuildArtifacts ¶
type BuildCredentials ¶
type BuildCredentials struct { ID int `long:"id" env:"CI_BUILD_ID" description:"The build ID to upload artifacts for"` Token string `long:"token" env:"CI_BUILD_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 */ }
type BuildError ¶ added in v1.4.0
type BuildError struct {
Inner error
}
func (*BuildError) Error ¶ added in v1.4.0
func (b *BuildError) Error() string
type BuildLogger ¶ added in v1.4.0
type BuildLogger struct {
// contains filtered or unexported fields
}
func NewBuildLogger ¶ added in v1.4.0
func NewBuildLogger(log BuildTrace, entry *logrus.Entry) BuildLogger
func (*BuildLogger) Debugln ¶ added in v1.4.0
func (e *BuildLogger) Debugln(args ...interface{})
func (*BuildLogger) Errorln ¶ added in v1.4.0
func (e *BuildLogger) Errorln(args ...interface{})
func (*BuildLogger) Infoln ¶ added in v1.4.0
func (e *BuildLogger) Infoln(args ...interface{})
func (*BuildLogger) Println ¶ added in v1.4.0
func (e *BuildLogger) Println(args ...interface{})
func (*BuildLogger) SoftErrorln ¶ added in v1.4.0
func (e *BuildLogger) SoftErrorln(args ...interface{})
func (*BuildLogger) Warningln ¶ added in v1.4.0
func (e *BuildLogger) Warningln(args ...interface{})
type BuildOptions ¶
type BuildOptions map[string]interface{}
func (*BuildOptions) Decode ¶
func (m *BuildOptions) Decode(result interface{}, keys ...string) error
func (*BuildOptions) Get ¶
func (m *BuildOptions) Get(keys ...string) (interface{}, bool)
func (*BuildOptions) GetString ¶
func (m *BuildOptions) GetString(keys ...string) (result string, ok bool)
func (*BuildOptions) GetSubOptions ¶ added in v1.1.1
func (m *BuildOptions) GetSubOptions(keys ...string) (result BuildOptions, ok bool)
func (*BuildOptions) Sanitize ¶ added in v1.1.1
func (m *BuildOptions) Sanitize() (err error)
type BuildResponseCredentials ¶ added in v1.8.0
type BuildRuntimeState ¶ added in v1.9.0
type BuildRuntimeState string
type BuildStage ¶ added in v1.9.0
type BuildStage string
type BuildState ¶
type BuildState string
type BuildTrace ¶
type BuildTracePatch ¶ added in v1.3.0
type BuildVariable ¶
type BuildVariable 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 BuildVariable, err error)
func (BuildVariable) String ¶
func (b BuildVariable) String() string
type BuildVariables ¶
type BuildVariables []BuildVariable
func (BuildVariables) Expand ¶
func (b BuildVariables) Expand() (variables BuildVariables)
func (BuildVariables) ExpandValue ¶
func (b BuildVariables) ExpandValue(value string) string
func (BuildVariables) Get ¶
func (b BuildVariables) Get(key string) string
func (BuildVariables) PublicOrInternal ¶
func (b BuildVariables) PublicOrInternal() (variables BuildVariables)
func (BuildVariables) StringList ¶
func (b BuildVariables) StringList() (variables []string)
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 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"` 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 ¶ added in v1.3.0
func (*Config) LoadConfig ¶
func (*Config) SaveConfig ¶
func (*Config) StatConfig ¶
type DeleteRunnerRequest ¶
type DeleteRunnerRequest struct {
Token string `json:"token,omitempty"`
}
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"` CPUSetCPUs string `` /* 159-byte string literal not displayed */ 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 */ 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 */ }
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 ¶ added in v1.7.0
func (c *DockerMachine) CompileOffPeakPeriods() (err error)
func (*DockerMachine) GetIdleCount ¶ added in v1.7.0
func (c *DockerMachine) GetIdleCount() int
func (*DockerMachine) GetIdleTime ¶ added in v1.7.0
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 DownloadState ¶
type DownloadState int
const ( DownloadSucceeded DownloadState = iota DownloadForbidden DownloadFailed DownloadNotFound )
type Executor ¶
type Executor interface { Shell() *ShellScriptInfo Prepare(globalConfig *Config, config *RunnerConfig, build *Build) error Run(cmd ExecutorCommand) error Finish(err error) Cleanup() }
func NewExecutor ¶
type ExecutorCommand ¶ added in v1.2.0
type ExecutorData ¶
type ExecutorData interface{}
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 ¶ added in v1.9.0
func GetExecutorProviders() (providers []ExecutorProvider)
type FeaturesInfo ¶
type GetBuildRequest ¶
type GetBuildRequest struct { Info VersionInfo `json:"info,omitempty"` Token string `json:"token,omitempty"` LastUpdate string `json:"last_update,omitempty"` }
type GetBuildResponse ¶
type GetBuildResponse struct { ID int `json:"id,omitempty"` ProjectID int `json:"project_id,omitempty"` Commands string `json:"commands,omitempty"` RepoURL string `json:"repo_url,omitempty"` Sha string `json:"sha,omitempty"` RefName string `json:"ref,omitempty"` BeforeSha string `json:"before_sha,omitempty"` AllowGitFetch bool `json:"allow_git_fetch,omitempty"` Timeout int `json:"timeout,omitempty"` Variables BuildVariables `json:"variables"` Options BuildOptions `json:"options"` Token string `json:"token"` Name string `json:"name"` Stage string `json:"stage"` Tag bool `json:"tag"` DependsOnBuilds []BuildInfo `json:"depends_on_builds"` TLSCAChain string `json:"-"` Credentials []BuildResponseCredentials `json:"credentials,omitempty"` }
func GetFailedBuild ¶ added in v1.8.0
func GetFailedBuild() (GetBuildResponse, error)
func GetLongRunningBuild ¶ added in v1.8.0
func GetLongRunningBuild() (GetBuildResponse, error)
func GetRemoteFailedBuild ¶ added in v1.8.0
func GetRemoteFailedBuild() (GetBuildResponse, error)
func GetRemoteLongRunningBuild ¶ added in v1.8.0
func GetRemoteLongRunningBuild() (GetBuildResponse, error)
func GetRemoteSuccessfulBuild ¶ added in v1.8.0
func GetRemoteSuccessfulBuild() (GetBuildResponse, error)
func GetSuccessfulBuild ¶ added in v1.8.0
func GetSuccessfulBuild() (GetBuildResponse, error)
func (*GetBuildResponse) RepoCleanURL ¶ added in v1.4.0
func (b *GetBuildResponse) RepoCleanURL() (ret string)
type GitStrategy ¶ added in v1.3.0
type GitStrategy int
const ( GitClone GitStrategy = iota GitFetch GitNone )
type KubernetesConfig ¶ added in v1.6.0
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 */ 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 */ CPUs string `` /* 139-byte string literal not displayed */ Memory string `` /* 153-byte string literal not displayed */ ServiceCPUs string `` /* 179-byte string literal not displayed */ ServiceMemory string `` /* 193-byte string literal not displayed */ HelperCPUs string `` /* 174-byte string literal not displayed */ HelperMemory string `` /* 188-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 */ }
func (*KubernetesConfig) GetHelperImage ¶ added in v1.9.0
func (c *KubernetesConfig) GetHelperImage() string
func (*KubernetesConfig) GetPollAttempts ¶ added in v1.10.0
func (c *KubernetesConfig) GetPollAttempts() int
func (*KubernetesConfig) GetPollInterval ¶ added in v1.10.0
func (c *KubernetesConfig) GetPollInterval() int
type KubernetesPullPolicy ¶ added in v1.8.0
type KubernetesPullPolicy string
func (KubernetesPullPolicy) Get ¶ added in v1.8.0
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 MockBuildTrace ¶ added in v1.5.0
func (*MockBuildTrace) Aborted ¶ added in v1.5.0
func (m *MockBuildTrace) Aborted() chan interface{}
func (*MockBuildTrace) Fail ¶ added in v1.5.0
func (m *MockBuildTrace) Fail(err error)
func (*MockBuildTrace) IsStdout ¶ added in v1.5.0
func (m *MockBuildTrace) IsStdout() bool
func (*MockBuildTrace) Success ¶ added in v1.5.0
func (m *MockBuildTrace) Success()
type MockBuildTracePatch ¶ added in v1.5.0
func (*MockBuildTracePatch) Limit ¶ added in v1.5.0
func (m *MockBuildTracePatch) Limit() int
func (*MockBuildTracePatch) Offset ¶ added in v1.5.0
func (m *MockBuildTracePatch) Offset() int
func (*MockBuildTracePatch) Patch ¶ added in v1.5.0
func (m *MockBuildTracePatch) Patch() []byte
func (*MockBuildTracePatch) SetNewOffset ¶ added in v1.5.0
func (m *MockBuildTracePatch) SetNewOffset(newOffset int)
func (*MockBuildTracePatch) ValidateRange ¶ added in v1.9.0
func (m *MockBuildTracePatch) ValidateRange() bool
type MockCommander ¶ added in v1.5.0
func (*MockCommander) Execute ¶ added in v1.5.0
func (m *MockCommander) Execute(c *cli.Context)
type MockExecutor ¶ added in v1.5.0
func (*MockExecutor) Cleanup ¶ added in v1.5.0
func (m *MockExecutor) Cleanup()
func (*MockExecutor) Finish ¶ added in v1.5.0
func (m *MockExecutor) Finish(err error)
func (*MockExecutor) Prepare ¶ added in v1.5.0
func (m *MockExecutor) Prepare(globalConfig *Config, config *RunnerConfig, build *Build) error
func (*MockExecutor) Run ¶ added in v1.5.0
func (m *MockExecutor) Run(cmd ExecutorCommand) error
func (*MockExecutor) Shell ¶ added in v1.5.0
func (m *MockExecutor) Shell() *ShellScriptInfo
type MockExecutorData ¶ added in v1.5.0
type MockExecutorProvider ¶ added in v1.5.0
func (*MockExecutorProvider) Acquire ¶ added in v1.5.0
func (m *MockExecutorProvider) Acquire(config *RunnerConfig) (ExecutorData, error)
func (*MockExecutorProvider) CanCreate ¶ added in v1.5.0
func (m *MockExecutorProvider) CanCreate() bool
func (*MockExecutorProvider) Create ¶ added in v1.5.0
func (m *MockExecutorProvider) Create() Executor
func (*MockExecutorProvider) GetFeatures ¶ added in v1.5.0
func (m *MockExecutorProvider) GetFeatures(features *FeaturesInfo)
func (*MockExecutorProvider) Release ¶ added in v1.5.0
func (m *MockExecutorProvider) Release(config *RunnerConfig, data ExecutorData) error
type MockNetwork ¶ added in v1.5.0
func (*MockNetwork) DeleteRunner ¶ added in v1.5.0
func (m *MockNetwork) DeleteRunner(config RunnerCredentials) bool
func (*MockNetwork) DownloadArtifacts ¶ added in v1.5.0
func (m *MockNetwork) DownloadArtifacts(config BuildCredentials, artifactsFile string) DownloadState
func (*MockNetwork) GetBuild ¶ added in v1.5.0
func (m *MockNetwork) GetBuild(config RunnerConfig) (*GetBuildResponse, bool)
func (*MockNetwork) PatchTrace ¶ added in v1.5.0
func (m *MockNetwork) PatchTrace(config RunnerConfig, buildCredentials *BuildCredentials, tracePart BuildTracePatch) UpdateState
func (*MockNetwork) ProcessBuild ¶ added in v1.5.0
func (m *MockNetwork) ProcessBuild(config RunnerConfig, buildCredentials *BuildCredentials) BuildTrace
func (*MockNetwork) RegisterRunner ¶ added in v1.5.0
func (m *MockNetwork) RegisterRunner(config RunnerCredentials, description string, tags string, runUntagged bool) *RegisterRunnerResponse
func (*MockNetwork) UpdateBuild ¶ added in v1.5.0
func (m *MockNetwork) UpdateBuild(config RunnerConfig, id int, state BuildState, trace *string) UpdateState
func (*MockNetwork) UploadArtifacts ¶ added in v1.5.0
func (m *MockNetwork) UploadArtifacts(config BuildCredentials, artifactsFile string) UploadState
func (*MockNetwork) UploadRawArtifacts ¶ added in v1.5.0
func (m *MockNetwork) UploadRawArtifacts(config BuildCredentials, reader io.Reader, baseName string, expireIn string) UploadState
func (*MockNetwork) VerifyRunner ¶ added in v1.5.0
func (m *MockNetwork) VerifyRunner(config RunnerCredentials) bool
type MockShell ¶ added in v1.5.0
func (*MockShell) GenerateScript ¶ added in v1.5.0
func (m *MockShell) GenerateScript(buildStage BuildStage, info ShellScriptInfo) (string, error)
func (*MockShell) GetConfiguration ¶ added in v1.5.0
func (m *MockShell) GetConfiguration(info ShellScriptInfo) (*ShellConfiguration, error)
func (*MockShell) GetFeatures ¶ added in v1.5.0
func (m *MockShell) GetFeatures(features *FeaturesInfo)
func (*MockShell) GetSupportedOptions ¶ added in v1.5.0
type Network ¶
type Network interface { GetBuild(config RunnerConfig) (*GetBuildResponse, bool) RegisterRunner(config RunnerCredentials, description, tags string, runUntagged bool) *RegisterRunnerResponse DeleteRunner(config RunnerCredentials) bool VerifyRunner(config RunnerCredentials) bool UpdateBuild(config RunnerConfig, id int, state BuildState, trace *string) UpdateState PatchTrace(config RunnerConfig, buildCredentials *BuildCredentials, tracePart BuildTracePatch) UpdateState DownloadArtifacts(config BuildCredentials, artifactsFile string) DownloadState UploadRawArtifacts(config BuildCredentials, reader io.Reader, baseName string, expireIn string) UploadState UploadArtifacts(config BuildCredentials, artifactsFile string) UploadState ProcessBuild(config RunnerConfig, buildCredentials *BuildCredentials) BuildTrace }
type ParallelsConfig ¶
type RegisterRunnerRequest ¶
type RegisterRunnerRequest struct { Info VersionInfo `json:"info,omitempty"` Token string `json:"token,omitempty"` Description string `json:"description,omitempty"` Tags string `json:"tag_list,omitempty"` RunUntagged bool `json:"run_untagged"` }
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 */ RunnerCredentials RunnerSettings }
func (*RunnerConfig) GetVariables ¶
func (c *RunnerConfig) GetVariables() BuildVariables
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 */ }
func (*RunnerCredentials) Log ¶
func (c *RunnerCredentials) Log() *log.Entry
func (*RunnerCredentials) ShortDescription ¶
func (c *RunnerCredentials) ShortDescription() string
func (*RunnerCredentials) UniqueID ¶
func (c *RunnerCredentials) UniqueID() string
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 */ 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 GetSupportedOptions() []string GetFeatures(features *FeaturesInfo) IsDefault() bool GetConfiguration(info ShellScriptInfo) (*ShellConfiguration, error) GenerateScript(buildStage BuildStage, info ShellScriptInfo) (string, error) }
type ShellConfiguration ¶ added in v1.3.0
type ShellConfiguration struct { Environment []string DockerCommand []string Command string Arguments []string PassFile bool Extension string }
func GetShellConfiguration ¶ added in v1.3.0
func GetShellConfiguration(info ShellScriptInfo) (*ShellConfiguration, error)
func (*ShellConfiguration) GetCommandWithArguments ¶ added in v1.3.0
func (s *ShellConfiguration) GetCommandWithArguments() []string
func (*ShellConfiguration) String ¶ added in v1.3.0
func (s *ShellConfiguration) String() string
type ShellScriptInfo ¶
type SubmoduleStrategy ¶ added in v1.10.0
type SubmoduleStrategy int
const ( SubmoduleInvalid SubmoduleStrategy = iota SubmoduleNone SubmoduleNormal SubmoduleRecursive )
type UpdateBuildRequest ¶
type UpdateBuildRequest struct { Info VersionInfo `json:"info,omitempty"` Token string `json:"token,omitempty"` State BuildState `json:"state,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"` }
type VirtualBoxConfig ¶
Source Files ¶
- build.go
- build_logger.go
- build_options.go
- command.go
- config.go
- consts.go
- executor.go
- mock_BuildTrace.go
- mock_BuildTracePatch.go
- mock_Commander.go
- mock_Executor.go
- mock_ExecutorData.go
- mock_ExecutorProvider.go
- mock_Network.go
- mock_Shell.go
- network.go
- shell.go
- support.go
- trace.go
- variables.go
- version.go
Click to show internal directories.
Click to hide internal directories.