integration

package
v0.9.2 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2019 License: Apache-2.0 Imports: 7 Imported by: 0

README

Tilt Integration Tests

Runs the Tilt binary and ensures that services are correctly deployed.

Who You Are: A developer who has kubectl configured to talk to an existing cluster.

What This Framework Does: Compiles the Tilt binary, deploys servers to the tilt-integration namespace, and cleans up when it finishes.

Each subdirectory is a test case driven by the file of the same name (e.g., oneup_.go drives the test driven by the data in oneup). Each Tiltfile should deploy small services to gcr.io/windmill-test-containers. Add new images to purge-test-images.sh so that they get purged periodically.

Run the tests with

go test -tags 'integration' -timeout 300s ./integration

or

make integration

These tests will not run with the normal make test.

On CircleCI, we run these tests against a clean Kubernetes cluster. Follow these instructions if you want to run the same cluster locally.

https://github.com/kubernetes-sigs/kind

Simulating restart_container() on non-Docker clusters

As of 6/28/19 restart_container(), a command that can be passed to a live_update, doesn't work on non-Docker clusters. However there's a workaround available to simulate restart_container()'s functionality. It's used in the onewatch integration test so that the test passes on non-Docker clusters. Here's how it works:

Copy start.sh and restart.sh to your container working dir.

Make your container entrypoint: ./start.sh path-to-binary [args]

To restart the container add this instead of restart_container() in the live update parameter: run(./restart.sh)

So, for example:

docker_build('gcr.io/windmill-test-containers/integration/onewatch',
             '.',
             dockerfile='Dockerfile',
             live_update=[
               sync('.', '/go/src/github.com/windmilleng/tilt/integration/onewatch'),
               run('go install github.com/windmilleng/tilt/integration/onewatch'),
               run('./restart.sh'),
             ])

This live update will cause the go install to be run in the container every time anything in the . path locally changes. After the go install is run, ./restart.sh will be run. This will kill the original entrypoint, and restart it, effectively simulating the container_restart() functionality on Docker.

Documentation

Overview

Integration tests that run the Tilt binary directly. See README.md for more info on how to run and write integration tests.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MemoryStatsReporter

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

func (*MemoryStatsReporter) Close

func (sr *MemoryStatsReporter) Close() error

func (*MemoryStatsReporter) Count

func (sr *MemoryStatsReporter) Count(name string, value int64, tags map[string]string, rate float64) error

func (*MemoryStatsReporter) Incr

func (sr *MemoryStatsReporter) Incr(name string, tags map[string]string, rate float64) error

func (*MemoryStatsReporter) Timing

func (sr *MemoryStatsReporter) Timing(name string, value time.Duration, tags map[string]string, rate float64) error

type MemoryStatsServer

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

func StartMemoryStatsServer

func StartMemoryStatsServer() (mss *MemoryStatsServer, port int, err error)

func (*MemoryStatsServer) TearDown

func (mss *MemoryStatsServer) TearDown() error

Directories

Path Synopsis
dcbuild
dcfastbuild

Jump to

Keyboard shortcuts

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