docker

package
v0.22.0 Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2020 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const RegistryPasswordEnvKey = "REGISTRY_PASSWORD"

RegistryPasswordEnvKey represents the password environment variable for authenticating against a docker registry.

View Source
const RegistryUsernameEnvKey = "REGISTRY_USERNAME"

RegistryUsernameEnvKey represents the username environment variable for authenticating against a docker registry.

View Source
const SauceRunnerConfigFile = "sauce-runner.json"

SauceRunnerConfigFile represents the filename for the sauce runner configuration.

Variables

This section is empty.

Functions

func NewImagePullOptions

func NewImagePullOptions() (types.ImagePullOptions, error)

NewImagePullOptions returns a new types.ImagePullOptions object. Credentials are also configured, if available via environment variables (see RegistryUsernameEnvKey and RegistryPasswordEnvKey).

Types

type CommonAPIClient

type CommonAPIClient interface {
	ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)
	ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error)
	ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error)
	ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error)
	ContainerStart(ctx context.Context, containerID string, options types.ContainerStartOptions) error
	ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
	CopyToContainer(ctx context.Context, container, path string, content io.Reader, options types.CopyToContainerOptions) error
	ContainerStatPath(ctx context.Context, containerID, path string) (types.ContainerPathStat, error)
	CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error)
	ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error)
	ContainerExecAttach(ctx context.Context, execID string, config types.ExecStartCheck) (types.HijackedResponse, error)
	ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error)
	ContainerStop(ctx context.Context, containerID string, timeout *time.Duration) error
	ContainerRemove(ctx context.Context, containerID string, options types.ContainerRemoveOptions) error
	ImageInspectWithRaw(ctx context.Context, imageID string) (types.ImageInspect, []byte, error)
}

CommonAPIClient is the interface for interacting with containers.

type Handler

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

Handler represents the client to handle Docker tasks

func Create

func Create() (*Handler, error)

Create generates a docker client

func CreateMock

func CreateMock(client CommonAPIClient) *Handler

CreateMock allows to get a handler with a custom interface

func (*Handler) ContainerInspect added in v0.21.0

func (handler *Handler) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)

ContainerInspect returns the container information.

func (*Handler) ContainerRemove

func (handler *Handler) ContainerRemove(ctx context.Context, srcContainerID string) error

ContainerRemove removes testrunner container

func (*Handler) ContainerStop

func (handler *Handler) ContainerStop(ctx context.Context, srcContainerID string) error

ContainerStop stops a running container

func (*Handler) CopyFilesToContainer

func (handler *Handler) CopyFilesToContainer(ctx context.Context, srcContainerID string, files []string, targetDir string) error

CopyFilesToContainer copies the given files into the container.

func (*Handler) CopyFromContainer

func (handler *Handler) CopyFromContainer(ctx context.Context, srcContainerID string, srcPath string, dstPath string) error

CopyFromContainer downloads a file from the testrunner container

func (*Handler) CopyToContainer

func (handler *Handler) CopyToContainer(ctx context.Context, containerID string, srcFile string, targetDir string) error

CopyToContainer copies the given file to the container.

func (*Handler) Execute

func (handler *Handler) Execute(ctx context.Context, srcContainerID string, cmd []string, env map[string]string) (*types.IDResponse, *types.HijackedResponse, error)

Execute runs the test in the Docker container and attaches to its stdout

func (*Handler) ExecuteInspect

func (handler *Handler) ExecuteInspect(ctx context.Context, srcContainerID string) (int, error)

ExecuteInspect checks exit code of test

func (*Handler) GetImageFlavor

func (handler *Handler) GetImageFlavor(img config.Image) string

GetImageFlavor returns a string that contains the image name and tag defined by the project.

func (*Handler) HasBaseImage

func (handler *Handler) HasBaseImage(ctx context.Context, baseImage string) (bool, error)

HasBaseImage checks if base image is installed

func (*Handler) IsErrNotFound added in v0.21.0

func (handler *Handler) IsErrNotFound(err error) bool

IsErrNotFound returns true if the error is a NotFound error, which is returned by the API when some object is not found.

func (*Handler) ProjectDir

func (handler *Handler) ProjectDir(ctx context.Context, imageID string) (string, error)

ProjectDir returns the project directory as is configured for the given image.

func (*Handler) PullBaseImage

func (handler *Handler) PullBaseImage(ctx context.Context, img config.Image) error

PullBaseImage pulls an image from Docker

func (*Handler) StartContainer

func (handler *Handler) StartContainer(ctx context.Context, c cypress.Project) (*container.ContainerCreateCreatedBody, error)

StartContainer starts the Docker testrunner container

func (*Handler) ValidateDependency

func (handler *Handler) ValidateDependency() error

ValidateDependency checks if external dependencies are installed

type Runner

type Runner struct {
	Project cypress.Project
	Ctx     context.Context
	Cli     *command.SauceCtlCli
	// contains filtered or unexported fields
}

Runner represents the docker implementation of a test runner.

func New

func New(c cypress.Project, cli *command.SauceCtlCli) (*Runner, error)

New creates a new Runner instance.

func (*Runner) RunProject

func (r *Runner) RunProject() (int, error)

RunProject runs the tests defined in config.Project.

Jump to

Keyboard shortcuts

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