本文整理匯總了Golang中github.com/opentable/sous/core.Sous.RunTarget方法的典型用法代碼示例。如果您正苦於以下問題:Golang Sous.RunTarget方法的具體用法?Golang Sous.RunTarget怎麽用?Golang Sous.RunTarget使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/opentable/sous/core.Sous
的用法示例。
在下文中一共展示了Sous.RunTarget方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Contracts
func Contracts(sous *core.Sous, args []string) {
contractsFlags.Parse(args)
args = contractsFlags.Args()
timeout := *timeoutFlag
targetName := "app"
if len(args) != 0 {
targetName = args[0]
}
core.RequireGit()
core.RequireDocker()
if *dockerImage != "" {
cli.Fatalf("-image flag not yet implemented")
}
target, context := sous.AssembleTargetContext(targetName)
sous.RunTarget(target, context)
cli.Logf("=> Running Contracts")
cli.Logf(`=> **TIP:** Open another terminal in this directory and type **sous logs -f**`)
taskHost := core.DivineTaskHost()
port0, err := ports.GetFreePort()
if err != nil {
cli.Fatalf("Unable to get free port: %s", err)
}
dr := docker.NewRun(context.DockerTag())
dr.AddEnv("PORT0", strconv.Itoa(port0))
dr.AddEnv("TASK_HOST", taskHost)
dr.StdoutFile = context.FilePath("stdout")
dr.StderrFile = context.FilePath("stderr")
container, err := dr.Background().Start()
if err != nil {
cli.Fatalf("Unable to start container: %s", err)
}
cli.AddCleanupTask(func() error {
return container.KillIfRunning()
})
failed := 0
for _, c := range theContracts {
cli.Logf(`===> CHECKING CONTRACT: "%s"`, c.Name)
cli.Logf(`===> Description: %s`, c.Desc(dr))
if c.Tips != nil {
cli.Logf("===> **TIPS for this contract:**")
cli.LogBulletList(" -", c.Tips(dr))
}
failed += within(timeout, func() bool {
return c.Premise(dr)
})
}
if failed != 0 {
cli.Fatalf("%d contracts failed.", failed)
}
cli.Success()
}
示例2: Run
func Run(sous *core.Sous, args []string) {
targetName := "app"
if len(args) != 0 {
targetName = args[0]
}
core.RequireGit()
core.RequireDocker()
target, context := sous.AssembleTargetContext(targetName)
runner, ok := target.(core.ContainerTarget)
if !ok {
cli.Fatalf("Target %s does not support running.", target.Name())
}
rebuilt, _ := sous.RunTarget(target, context)
dr, _ := sous.RunContainerTarget(runner, context, rebuilt)
if exitCode := dr.ExitCode(); exitCode != 0 {
cli.Logf("Docker container exited with code %d", exitCode)
cli.Exit(exitCode)
}
cli.Success()
}
示例3: Build
func Build(sous *core.Sous, args []string) {
targetName := "app"
if len(args) != 0 {
targetName = args[0]
}
core.RequireGit()
core.RequireDocker()
if err := git.AssertCleanWorkingTree(); err != nil {
cli.Warn("Dirty working tree: %s", err)
}
target, context := sous.AssembleTargetContext(targetName)
built, _ := sous.RunTarget(target, context)
if !built {
cli.Successf("Already built: %s", context.DockerTag())
}
name := context.CanonicalPackageName()
cli.Successf("Successfully built %s v%s as %s", name, context.BuildVersion, context.DockerTag())
}