bake-0.0: Continuous integration library.

Safe HaskellNone
LanguageHaskell2010

Development.Bake

Contents

Description

Define a continuous integration system.

Synopsis

Execute

bake :: (Show state, Read state, Show patch, Read patch, Show test, Read test) => Oven state patch test -> IO () Source

Central types

data Candidate state patch Source

Constructors

Candidate state [patch] 

data Oven state patch test Source

Constructors

Oven 

Fields

ovenUpdateState :: Maybe (Candidate state patch) -> IO state

Given a state, and a set of candiates that have passed, merge to create a new state.

ovenRunTest :: Candidate state patch -> Maybe test -> TestInfo test

Produce information about a test

ovenPatchReject :: patch -> Maybe test -> IO ()

A patch has been marked as failing, tell everyone.

ovenPatchExtra :: patch -> IO String

Extra information about the patch

ovenDefaultServer :: (Host, Port)

Default server to use

data TestInfo test Source

defaultOven :: Oven state patch test Source

run :: IO [test] -> TestInfo test Source

TestInfo mutators

threads :: Int -> TestInfo test -> TestInfo test Source

before :: [test] -> TestInfo test -> TestInfo test Source

Operations

startServer :: (Show state, Read state, Show patch, Read patch, Show test, Read test) => Port -> Author -> String -> Oven state patch test -> IO () Source

startClient :: (Host, Port) -> Author -> String -> [String] -> Int -> IO () Source

sendPause :: (Host, Port) -> Author -> IO () Source

sendUnpause :: (Host, Port) -> Author -> IO () Source

sendAddPatch :: Show patch => (Host, Port) -> Author -> patch -> IO () Source

sendDelPatch :: Show patch => (Host, Port) -> Author -> patch -> IO () Source

sendDelAllPatches :: (Host, Port) -> Author -> IO () Source

Utility types

type Port = Int Source