Documentation
¶
Index ¶
- Variables
- func GetDockerClient(ctx context.Context) (cli client.APIClient, err error)
- func GetHostInfo(ctx context.Context) (info system.Info, err error)
- func ImageExistsLocally(ctx context.Context, imageName, platform string) (bool, error)
- func LoadDockerAuthConfig(ctx context.Context, image string) (registry.AuthConfig, error)
- func LoadDockerAuthConfigs(ctx context.Context) map[string]registry.AuthConfig
- func NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor
- func NewDockerNetworkCreateExecutor(name string, config *network.CreateOptions) common.Executor
- func NewDockerNetworkRemoveExecutor(name string) common.Executor
- func NewDockerPullExecutor(input NewDockerPullExecutorInput) common.Executor
- func NewDockerVolumesRemoveExecutor(volumeNames []string) common.Executor
- func RemoveImage(ctx context.Context, imageName string, force, pruneChildren bool) (bool, error)
- func RunnerArch(ctx context.Context) string
- type Container
- type ExecutionsEnvironment
- type FileEntry
- type HostEnvironment
- func (e *HostEnvironment) Close() common.Executor
- func (e *HostEnvironment) ConnectToNetwork(name string) common.Executor
- func (e *HostEnvironment) Copy(destPath string, files ...*FileEntry) common.Executor
- func (e *HostEnvironment) CopyDir(destPath, srcPath string, useGitIgnore bool) common.Executor
- func (e *HostEnvironment) CopyTarStream(ctx context.Context, destPath string, tarStream io.Reader) error
- func (e *HostEnvironment) Create(_, _ []string) common.Executor
- func (e *HostEnvironment) DefaultPathVariable() string
- func (e *HostEnvironment) Exec(command []string, env map[string]string, user, workdir string) common.Executor
- func (e *HostEnvironment) ExecWithCmdLine(command []string, cmdline string, env map[string]string, user, workdir string) common.Executor
- func (e *HostEnvironment) GetActPath() string
- func (e *HostEnvironment) GetContainerArchive(ctx context.Context, srcPath string) (io.ReadCloser, error)
- func (e *HostEnvironment) GetLXC() bool
- func (e *HostEnvironment) GetName() string
- func (*HostEnvironment) GetPathVariableName() string
- func (e *HostEnvironment) GetRoot() string
- func (e *HostEnvironment) GetRunnerContext(_ context.Context) map[string]any
- func (*HostEnvironment) IsEnvironmentCaseInsensitive() bool
- func (e *HostEnvironment) IsHealthy(ctx context.Context) (time.Duration, error)
- func (*HostEnvironment) JoinPathVariable(paths ...string) string
- func (e *HostEnvironment) Pull(_ bool) common.Executor
- func (e *HostEnvironment) Remove() common.Executor
- func (e *HostEnvironment) ReplaceLogWriter(stdout, _ io.Writer) (io.Writer, io.Writer)
- func (e *HostEnvironment) Start(_ bool) common.Executor
- func (e *HostEnvironment) ToContainerPath(path string) string
- func (e *HostEnvironment) UpdateFromEnv(srcPath string, env *map[string]string) common.Executor
- func (e *HostEnvironment) UpdateFromImageEnv(_ *map[string]string) common.Executor
- type LinuxContainerEnvironmentExtensions
- func (*LinuxContainerEnvironmentExtensions) DefaultPathVariable() string
- func (*LinuxContainerEnvironmentExtensions) GetActPath() string
- func (*LinuxContainerEnvironmentExtensions) GetLXC() bool
- func (*LinuxContainerEnvironmentExtensions) GetName() string
- func (*LinuxContainerEnvironmentExtensions) GetPathVariableName() string
- func (*LinuxContainerEnvironmentExtensions) GetRoot() string
- func (l *LinuxContainerEnvironmentExtensions) GetRunnerContext(ctx context.Context) map[string]any
- func (*LinuxContainerEnvironmentExtensions) IsEnvironmentCaseInsensitive() bool
- func (*LinuxContainerEnvironmentExtensions) JoinPathVariable(paths ...string) string
- func (*LinuxContainerEnvironmentExtensions) ToContainerPath(path string) string
- type NewContainerInput
- type NewDockerBuildExecutorInput
- type NewDockerPullExecutorInput
Constants ¶
This section is empty.
Variables ¶
var NewContainer = func(input *NewContainerInput) ExecutionsEnvironment { cr := new(containerReference) cr.input = input cr.toolCache = input.ToolCache return cr }
NewContainer creates a reference to a container
Functions ¶
func ImageExistsLocally ¶
ImageExistsLocally returns a boolean indicating if an image with the requested name, tag and architecture exists in the local docker image store
func LoadDockerAuthConfig ¶
func LoadDockerAuthConfigs ¶
func LoadDockerAuthConfigs(ctx context.Context) map[string]registry.AuthConfig
func NewDockerBuildExecutor ¶
func NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor
NewDockerBuildExecutor function to create a run executor for the container
func NewDockerNetworkCreateExecutor ¶
func NewDockerNetworkCreateExecutor(name string, config *network.CreateOptions) common.Executor
func NewDockerPullExecutor ¶
func NewDockerPullExecutor(input NewDockerPullExecutorInput) common.Executor
NewDockerPullExecutor function to create a run executor for the container
func RemoveImage ¶
RemoveImage removes image from local store, the function is used to run different container image architectures
func RunnerArch ¶
Arch fetches values from docker info and translates architecture to GitHub actions compatible runner.arch values https://github.com/github/docs/blob/main/data/reusables/actions/runner-arch-description.md
Types ¶
type Container ¶
type Container interface { Create(capAdd, capDrop []string) common.Executor ConnectToNetwork(name string) common.Executor Copy(destPath string, files ...*FileEntry) common.Executor CopyTarStream(ctx context.Context, destPath string, tarStream io.Reader) error CopyDir(destPath, srcPath string, useGitIgnore bool) common.Executor GetContainerArchive(ctx context.Context, srcPath string) (io.ReadCloser, error) Pull(forcePull bool) common.Executor Start(attach bool) common.Executor Exec(command []string, env map[string]string, user, workdir string) common.Executor UpdateFromEnv(srcPath string, env *map[string]string) common.Executor UpdateFromImageEnv(env *map[string]string) common.Executor Remove() common.Executor Close() common.Executor ReplaceLogWriter(io.Writer, io.Writer) (io.Writer, io.Writer) IsHealthy(ctx context.Context) (time.Duration, error) }
Container for managing docker run containers
type ExecutionsEnvironment ¶
type ExecutionsEnvironment interface { Container ToContainerPath(string) string GetName() string GetRoot() string GetLXC() bool GetActPath() string GetPathVariableName() string DefaultPathVariable() string JoinPathVariable(...string) string GetRunnerContext(ctx context.Context) map[string]any // On windows PATH and Path are the same key IsEnvironmentCaseInsensitive() bool }
type HostEnvironment ¶
type HostEnvironment struct { Name string Path string TmpDir string ToolCache string Workdir string ActPath string Root string CleanUp func() StdOut io.Writer LXC bool }
func (*HostEnvironment) Close ¶
func (e *HostEnvironment) Close() common.Executor
func (*HostEnvironment) ConnectToNetwork ¶
func (e *HostEnvironment) ConnectToNetwork(name string) common.Executor
func (*HostEnvironment) Copy ¶
func (e *HostEnvironment) Copy(destPath string, files ...*FileEntry) common.Executor
func (*HostEnvironment) CopyDir ¶
func (e *HostEnvironment) CopyDir(destPath, srcPath string, useGitIgnore bool) common.Executor
func (*HostEnvironment) CopyTarStream ¶
func (*HostEnvironment) DefaultPathVariable ¶
func (e *HostEnvironment) DefaultPathVariable() string
func (*HostEnvironment) ExecWithCmdLine ¶
func (*HostEnvironment) GetActPath ¶
func (e *HostEnvironment) GetActPath() string
func (*HostEnvironment) GetContainerArchive ¶
func (e *HostEnvironment) GetContainerArchive(ctx context.Context, srcPath string) (io.ReadCloser, error)
func (*HostEnvironment) GetLXC ¶
func (e *HostEnvironment) GetLXC() bool
func (*HostEnvironment) GetName ¶
func (e *HostEnvironment) GetName() string
func (*HostEnvironment) GetPathVariableName ¶
func (*HostEnvironment) GetPathVariableName() string
func (*HostEnvironment) GetRoot ¶
func (e *HostEnvironment) GetRoot() string
func (*HostEnvironment) GetRunnerContext ¶
func (e *HostEnvironment) GetRunnerContext(_ context.Context) map[string]any
func (*HostEnvironment) IsEnvironmentCaseInsensitive ¶
func (*HostEnvironment) IsEnvironmentCaseInsensitive() bool
func (*HostEnvironment) JoinPathVariable ¶
func (*HostEnvironment) JoinPathVariable(paths ...string) string
func (*HostEnvironment) Remove ¶
func (e *HostEnvironment) Remove() common.Executor
func (*HostEnvironment) ReplaceLogWriter ¶
func (*HostEnvironment) ToContainerPath ¶
func (e *HostEnvironment) ToContainerPath(path string) string
func (*HostEnvironment) UpdateFromEnv ¶
func (*HostEnvironment) UpdateFromImageEnv ¶
func (e *HostEnvironment) UpdateFromImageEnv(_ *map[string]string) common.Executor
type LinuxContainerEnvironmentExtensions ¶
type LinuxContainerEnvironmentExtensions struct {
// contains filtered or unexported fields
}
func (*LinuxContainerEnvironmentExtensions) DefaultPathVariable ¶
func (*LinuxContainerEnvironmentExtensions) DefaultPathVariable() string
func (*LinuxContainerEnvironmentExtensions) GetActPath ¶
func (*LinuxContainerEnvironmentExtensions) GetActPath() string
func (*LinuxContainerEnvironmentExtensions) GetLXC ¶
func (*LinuxContainerEnvironmentExtensions) GetLXC() bool
func (*LinuxContainerEnvironmentExtensions) GetName ¶
func (*LinuxContainerEnvironmentExtensions) GetName() string
func (*LinuxContainerEnvironmentExtensions) GetPathVariableName ¶
func (*LinuxContainerEnvironmentExtensions) GetPathVariableName() string
func (*LinuxContainerEnvironmentExtensions) GetRoot ¶
func (*LinuxContainerEnvironmentExtensions) GetRoot() string
func (*LinuxContainerEnvironmentExtensions) GetRunnerContext ¶
func (l *LinuxContainerEnvironmentExtensions) GetRunnerContext(ctx context.Context) map[string]any
func (*LinuxContainerEnvironmentExtensions) IsEnvironmentCaseInsensitive ¶
func (*LinuxContainerEnvironmentExtensions) IsEnvironmentCaseInsensitive() bool
func (*LinuxContainerEnvironmentExtensions) JoinPathVariable ¶
func (*LinuxContainerEnvironmentExtensions) JoinPathVariable(paths ...string) string
func (*LinuxContainerEnvironmentExtensions) ToContainerPath ¶
func (*LinuxContainerEnvironmentExtensions) ToContainerPath(path string) string
Resolves the equivalent host path inside the container This is required for windows and WSL 2 to translate things like C:\Users\Myproject to /mnt/users/Myproject For use in docker volumes and binds
type NewContainerInput ¶
type NewContainerInput struct { Image string Username string Password string Entrypoint []string Cmd []string WorkingDir string Env []string ToolCache string Binds []string Mounts map[string]string Name string Stdout io.Writer Stderr io.Writer NetworkMode string Privileged bool UsernsMode string Platform string NetworkAliases []string ExposedPorts nat.PortSet PortBindings nat.PortMap ConfigOptions string JobOptions string ValidVolumes []string }
NewContainerInput the input for the New function