Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrStaleVM is returned from one of the Instance methods if it detects // that the VM had already been used for a repository and was not reverted // afterwards. ErrStaleVM = fmt.Errorf("previous build artifacts found on stale vm") // ErrMissingEndpointConfig is returned if the provider config was missing // an 'ENDPOINT' configuration, but one is required. ErrMissingEndpointConfig = fmt.Errorf("expected config key endpoint") )
Functions ¶
This section is empty.
Types ¶
type Instance ¶
type Instance interface { // UploadScript uploads the given script to the instance. The script is // a bash script with a shebang (#!/bin/bash) line. Note that this // method should not be called multiple times. UploadScript(context.Context, []byte) error // RunScript runs the build script that was uploaded with the // UploadScript method. RunScript(context.Context, io.WriteCloser) (*RunResult, error) Stop(context.Context) error // ID is used when identifying the instance in logs and such ID() string }
An Instance is something that can run a build script.
type Provider ¶
type Provider interface { // Start starts an instance. It shouldn't return until the instance is // ready to call UploadScript on (this may, for example, mean that it // waits for SSH connections to be possible). Start(context.Context, *StartAttributes) (Instance, error) }
Provider represents some kind of instance provider. It can point to an external HTTP API, or some process locally, or something completely different.
func NewProvider ¶
func NewProvider(name string, cfg *config.ProviderConfig) (Provider, error)
NewProvider creates a new provider using the given name and provider config. Valid names are 'docker', 'jupiterbrain', 'bluebox' and 'fake'.
type RunResult ¶
type RunResult struct { // The exit code of the script. Only valid if Completed is true. ExitCode uint8 // Whether the script finished running or not. Can be false if there was a // connection error in the middle of the script run. Completed bool }
RunResult represents the result of running a script with Instance.RunScript.
type StartAttributes ¶
type StartAttributes struct { Language string `json:"language"` OsxImage string `json:"osx_image"` Dist string `json:"dist"` Group string `json:"group"` OS string `json:"os"` }
StartAttributes contains some parts of the config which can be used to determine the type of instance to boot up (for example, what image to use)
Click to show internal directories.
Click to hide internal directories.