docker

package
v0.99.4 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2022 License: Apache-2.0 Imports: 43 Imported by: 0

Documentation

Overview

Example (GetJobID)
fmt.Println(getJobID("https://app.saucelabs.com/tests/cb6741a1a119448a9760531024657967"))
Output:

cb6741a1a119448a9760531024657967

Index

Examples

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 {
	ServerVersion(ctx context.Context) (types.Version, error)
	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, platform *specs.Platform, 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 ContainerRunner added in v0.25.2

type ContainerRunner struct {
	Ctx context.Context

	Framework              framework.Framework
	FrameworkMeta          framework.MetadataService
	JobWriter              job.Writer
	ShowConsoleLog         bool
	JobReader              job.Reader
	ArtfactDownloader      job.ArtifactDownloader
	MetadataSearchStrategy framework.MetadataSearchStrategy

	Reporters []report.Reporter
	// contains filtered or unexported fields
}

ContainerRunner represents the container runner for docker.

type CypressRunner added in v0.25.0

type CypressRunner struct {
	ContainerRunner
	Project cypress.Project
}

CypressRunner represents the docker implementation of a test runner.

func NewCypress added in v0.25.0

NewCypress creates a new CypressRunner instance.

func (*CypressRunner) RunProject added in v0.25.0

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

RunProject runs the tests defined in config.Project.

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) 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,
	matcher sauceignore.Matcher) error

CopyToContainer copies the given file to the container.

func (*Handler) Execute

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

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

func (*Handler) ExecuteAttach added in v0.25.2

func (handler *Handler) ExecuteAttach(ctx context.Context, containerID string, cmd []string) (int, string, error)

ExecuteAttach runs the cmd test in the Docker container and catch the given stream to a string.

func (*Handler) ExecuteInspect

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

ExecuteInspect checks exit code of test

func (*Handler) GetBrowserVersion added in v0.52.4

func (handler *Handler) GetBrowserVersion(ctx context.Context, imageID string, browser string) string

GetBrowserVersion gets the given browser's version from an image's labels

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) IsErrRemovalInProgress added in v0.35.0

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

IsErrRemovalInProgress returns true if error is meaning removal is in progress.

func (*Handler) IsInstalled added in v0.25.3

func (handler *Handler) IsInstalled() bool

IsInstalled checks if docker is installed.

func (*Handler) IsLaunchable added in v0.80.0

func (handler *Handler) IsLaunchable(image string) error

IsLaunchable checks if the given image is launchable by spawning a container and cleaning it up right after.

func (*Handler) JobInfoFile added in v0.28.0

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

JobInfoFile returns the file containing the job details url for the given image.

func (*Handler) ProjectDir added in v0.25.0

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) PullImage added in v0.26.0

func (handler *Handler) PullImage(ctx context.Context, img string) error

PullImage pulls an image from Docker

func (*Handler) StartContainer

func (handler *Handler) StartContainer(ctx context.Context, options containerStartOptions) (*container.ContainerCreateCreatedBody, error)

StartContainer starts the Docker testrunner container

func (*Handler) Teardown added in v0.25.2

func (handler *Handler) Teardown(ctx context.Context, containerID string) error

Teardown is a simple wrapper around ContainerStop and ContainerRemove and calls them in order.

type PlaywrightRunner added in v0.25.0

type PlaywrightRunner struct {
	ContainerRunner
	Project playwright.Project
}

PlaywrightRunner represents the docker implementation of a test runner.

func NewPlaywright added in v0.25.0

NewPlaywright creates a new PlaywrightRunner instance.

func (*PlaywrightRunner) RunProject added in v0.25.0

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

RunProject runs the tests defined in config.Project.

type PuppeterRunner added in v0.34.0

type PuppeterRunner struct {
	ContainerRunner
	Project puppeteer.Project
}

PuppeterRunner represents the docker implementation of a test runner.

func NewPuppeteer added in v0.34.0

NewPuppeteer creates a new PuppeterRunner instance.

func (*PuppeterRunner) RunProject added in v0.34.0

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

RunProject runs the tests defined in config.Project.

type TestcafeRunner added in v0.29.0

type TestcafeRunner struct {
	ContainerRunner
	Project testcafe.Project
}

TestcafeRunner represents the docker implementation of a test runner.

func NewTestcafe added in v0.29.0

NewTestcafe creates a new TestcafeRunner instance.

func (*TestcafeRunner) RunProject added in v0.29.0

func (r *TestcafeRunner) 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