golem

command module
v0.0.0-...-4918dee Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2016 License: Apache-2.0, CC-BY-SA-4.0 Imports: 10 Imported by: 0

README

Golem Integration Test Runner

The golem integration test runner is a flexible and robust way to run integration tests on top of Docker. It is designed for running tests which require complicated components such as proxies, databases, and docker. The test runner leverages docker's ability to run docker inside of a docker container and docker compose for orchastrating test components.

Key Features
  • Leverages docker compose for setting up a test
  • Runs each test inside its own test container for isolation
  • Customizable run configuration for testing development builds
  • Log capture of each test component for failure analysis
  • Parallel test execution and multi-configuration tests
Planned Features
  • Ability to run on a swarm cluster for test scaling
  • Web UI for realtime test monitoring and log analysis
Goals
  • Optimized for test driven development. Tests are able to leverage a cache to avoid rebuilding components during test setup.
  • Easily fit into CI workflow.
  • Handle complicated matrix testing.

Configuration

Golem is configured through toml files (default named "golem.conf") in the directory containing a test suite. Each configuration file may specify multiple suite configuration.

Configuration example
[[suite]]
  # name is used to set the name of this suite, if none is set here then the name
  # should be set by the runner configuration or using the directory name
  name = "registry"

  # dind (or "Docker in Docker") is used to run a docker daemon inside the test container. This will
  # always be set if docker compose is used.
  dind=true

  # images which should exist in the test container
  # automatically set dind to true
  images=[ "nginx:1.9", "golang:1.4", "hello-world:latest" ]

  [[suite.pretest]]
    command="/bin/sh ./install_certs.sh localregistry"

  [[suite.testrunner]]
    command="bats -t ."
    format="tap"
    env=["TEST_REPO=hello-world", "TEST_TAG=latest", "TEST_USER=testuser", "TEST_PASSWORD=passpassword", "TEST_REGISTRY=localregistry", "TEST_SKIP_PULL=true"]

  # customimage allow runtime selection of an image inside the container
  # automatically set dind to true
  [[suite.customimage]]
    # tag is the tag that will exist for the image inside the container
    tag="golem-distribution:latest"
    # default is the default image to use from docker instance which
    # is building the golem test containers
    default="registry:2.2.1"
  [[suite.customimage]]
    tag="golem-registry:latest"
    default="registry:0.9.1"

Copyright © 2015-2016 Docker, Inc. All rights reserved, except as follows. Code is released under the Apache 2.0 license. The README.md file, and files in the "docs" folder are licensed under the Creative Commons Attribution 4.0 International License under the terms and conditions set forth in the file "LICENSE.docs". You may obtain a duplicate copy of the same license, titled CC-BY-SA-4.0, at http://creativecommons.org/licenses/by/4.0/.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/github.com/bugsnag/osext
Extensions to the standard "os" package.
Extensions to the standard "os" package.
_workspace/src/github.com/docker/distribution/digest
Package digest provides a generalized type to opaquely represent message digests and their operations within the registry.
Package digest provides a generalized type to opaquely represent message digests and their operations within the registry.
_workspace/src/github.com/docker/distribution/reference
Package reference provides a general type to represent any way of referencing images within the registry.
Package reference provides a general type to represent any way of referencing images within the registry.
_workspace/src/github.com/docker/docker/pkg/pools
Package pools provides a collection of pools which provide various data types with buffers.
Package pools provides a collection of pools which provide various data types with buffers.
_workspace/src/github.com/docker/docker/pkg/units
Package units provides helper function to parse and print size and time units in human-readable format.
Package units provides helper function to parse and print size and time units in human-readable format.
_workspace/src/github.com/fsouza/go-dockerclient
Package docker provides a client for the Docker remote API.
Package docker provides a client for the Docker remote API.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/Sirupsen/logrus
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
Package logrus is a structured logger for Go, completely API compatible with the standard library logger.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/parsers
Package parsers provides helper functions to parse and validate different type of string.
Package parsers provides helper functions to parse and validate different type of string.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/pools
Package pools provides a collection of pools which provide various data types with buffers.
Package pools provides a collection of pools which provide various data types with buffers.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/ulimit
Package ulimit provides structure and helper function to parse and represent resource limits (Rlimit and Ulimit, its human friendly version).
Package ulimit provides structure and helper function to parse and represent resource limits (Rlimit and Ulimit, its human friendly version).
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/docker/docker/pkg/units
Package units provides helper function to parse and print size and time units in human-readable format.
Package units provides helper function to parse and print size and time units in human-readable format.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/fsouza/go-dockerclient/external/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/fsouza/go-dockerclient/testing
Package testing provides a fake implementation of the Docker API, useful for testing purpose.
Package testing provides a fake implementation of the Docker API, useful for testing purpose.
_workspace/src/github.com/jlhawn/dockramp/build/commands
Package commands contains the set of Dockerfile commands.
Package commands contains the set of Dockerfile commands.
_workspace/src/github.com/jlhawn/tarsum/archive/tar
Package tar implements access to tar archives.
Package tar implements access to tar archives.
_workspace/src/github.com/jlhawn/tarsum/sha256
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4.
examples
registry/malevolent/Godeps/_workspace/src/github.com/docker/distribution/digest
Package digest provides a generalized type to opaquely represent message digests and their operations within the registry.
Package digest provides a generalized type to opaquely represent message digests and their operations within the registry.
registry/malevolent/Godeps/_workspace/src/github.com/docker/distribution/registry/api/v2
Package v2 describes routes, urls and the error codes used in the Docker Registry JSON HTTP API V2.
Package v2 describes routes, urls and the error codes used in the Docker Registry JSON HTTP API V2.
registry/malevolent/Godeps/_workspace/src/github.com/docker/docker/pkg/pools
Package pools provides a collection of pools which provide various data types with buffers.
Package pools provides a collection of pools which provide various data types with buffers.
registry/malevolent/Godeps/_workspace/src/github.com/docker/libtrust
Package libtrust provides an interface for managing authentication and authorization using public key cryptography.
Package libtrust provides an interface for managing authentication and authorization using public key cryptography.
registry/malevolent/Godeps/_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
registry/malevolent/Godeps/_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
Package runner provides a test runner for running golem test integration suites
Package runner provides a test runner for running golem test integration suites
Package versionutil provides utility functions for working with versions of Docker including parsing, comparing, and retrieving information.
Package versionutil provides utility functions for working with versions of Docker including parsing, comparing, and retrieving information.

Jump to

Keyboard shortcuts

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