本文整理汇总了Golang中github.com/flynn/flynn/test/cluster.Cluster.BuildFlynn方法的典型用法代码示例。如果您正苦于以下问题:Golang Cluster.BuildFlynn方法的具体用法?Golang Cluster.BuildFlynn怎么用?Golang Cluster.BuildFlynn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/flynn/flynn/test/cluster.Cluster
的用法示例。
在下文中一共展示了Cluster.BuildFlynn方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: build
func (r *Runner) build(b *Build) (err error) {
logFile, err := ioutil.TempFile("", "build-log")
if err != nil {
return err
}
b.LogFile = logFile.Name()
buildLog := buildlog.NewLog(logFile)
mainLog, err := buildLog.NewFile("build.log")
if err != nil {
return err
}
r.updateStatus(b, "pending")
<-r.buildCh
defer func() {
r.buildCh <- struct{}{}
}()
start := time.Now()
fmt.Fprintf(mainLog, "Starting build of %s at %s\n", b.Commit, start.Format(time.RFC822))
var c *cluster.Cluster
defer func() {
b.Duration = time.Since(start)
b.DurationFormatted = formatDuration(b.Duration)
fmt.Fprintf(mainLog, "build finished in %s\n", b.DurationFormatted)
if err != nil {
fmt.Fprintf(mainLog, "build error: %s\n", err)
fmt.Fprintln(mainLog, "DUMPING LOGS")
c.DumpLogs(buildLog)
}
c.Shutdown()
buildLog.Close()
b.LogURL = r.uploadToS3(logFile, b, buildLog.Boundary())
logFile.Close()
os.RemoveAll(b.LogFile)
b.LogFile = ""
if err == nil {
log.Printf("build %s passed!\n", b.ID)
r.updateStatus(b, "success")
r.ircMsgs <- fmt.Sprintf("PASS: %s %s", b.Description, b.URL())
} else {
log.Printf("build %s failed: %s\n", b.ID, err)
r.updateStatus(b, "failure")
r.ircMsgs <- fmt.Sprintf("FAIL: %s %s", b.Description, b.URL())
}
}()
log.Printf("building %s\n", b.Commit)
out := &iotool.SafeWriter{W: io.MultiWriter(os.Stdout, mainLog)}
bc := r.bc
bc.Network = r.allocateNet()
defer r.releaseNet(bc.Network)
c = cluster.New(bc, out)
log.Println("created cluster with ID", c.ID)
r.clusters[c.ID] = c
defer func() {
delete(r.clusters, c.ID)
}()
rootFS, err := c.BuildFlynn(r.rootFS, b.Commit, b.Merge, true)
defer removeRootFS(rootFS)
if err != nil {
return fmt.Errorf("could not build flynn: %s", err)
}
if _, err := c.Boot(cluster.ClusterTypeDefault, 3, buildLog, false); err != nil {
return fmt.Errorf("could not boot cluster: %s", err)
}
config, err := c.CLIConfig()
if err != nil {
return fmt.Errorf("could not generate flynnrc: %s", err)
}
var script bytes.Buffer
testRunScript.Execute(&script, map[string]interface{}{"Cluster": c, "Config": config.Clusters[0], "ListenPort": listenPort})
return c.RunWithEnv(script.String(), &cluster.Streams{
Stdout: out,
Stderr: out,
}, map[string]string{"TEST_RUNNER_AUTH_KEY": r.authKey})
}