当前位置: 首页>>代码示例>>Golang>>正文


Golang Client.JobBuild方法代码示例

本文整理汇总了Golang中github.com/concourse/go-concourse/concourse.Client.JobBuild方法的典型用法代码示例。如果您正苦于以下问题:Golang Client.JobBuild方法的具体用法?Golang Client.JobBuild怎么用?Golang Client.JobBuild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/concourse/go-concourse/concourse.Client的用法示例。


在下文中一共展示了Client.JobBuild方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: GetBuild

func GetBuild(client concourse.Client, jobName string, buildNameOrID string, pipelineName string) (atc.Build, error) {
	if buildNameOrID != "" {
		var build atc.Build
		var err error
		var found bool

		if jobName != "" {
			build, found, err = client.JobBuild(pipelineName, jobName, buildNameOrID)
		} else {
			build, found, err = client.Build(buildNameOrID)
		}

		if err != nil {
			return atc.Build{}, fmt.Errorf("failed to get build %s", err)
		}

		if !found {
			return atc.Build{}, errors.New("build not found")
		}

		return build, nil
	} else if jobName != "" {
		job, found, err := client.Job(pipelineName, jobName)

		if err != nil {
			return atc.Build{}, fmt.Errorf("failed to get job %s", err)
		}

		if !found {
			return atc.Build{}, errors.New("job not found")
		}

		if job.NextBuild != nil {
			return *job.NextBuild, nil
		} else if job.FinishedBuild != nil {
			return *job.FinishedBuild, nil
		} else {
			return atc.Build{}, errors.New("job has no builds")
		}
	} else {
		page := &concourse.Page{Limit: 100}

		for page != nil {
			allBuilds, pagination, err := client.Builds(*page)
			if err != nil {
				return atc.Build{}, fmt.Errorf("failed to get builds %s", err)
			}

			for _, build := range allBuilds {
				if build.JobName == "" {
					return build, nil
				}
			}

			page = pagination.Next
		}

		return atc.Build{}, errors.New("no builds match job")
	}
}
开发者ID:ArthurHlt,项目名称:fly,代码行数:60,代码来源:helpers.go

示例2: GetBuild

func GetBuild(client concourse.Client, jobName string, buildNameOrID string, pipelineName string) (atc.Build, error) {
	if pipelineName != "" && jobName == "" {
		log.Fatalln("job must be specified if pipeline is specified")
	}
	if pipelineName == "" && jobName != "" {
		log.Fatalln("pipeline must be specified if job is specified")
	}

	if buildNameOrID != "" {
		var build atc.Build
		var err error
		var found bool

		if jobName != "" {
			build, found, err = client.JobBuild(pipelineName, jobName, buildNameOrID)
		} else {
			build, found, err = client.Build(buildNameOrID)
		}

		if err != nil {
			return atc.Build{}, fmt.Errorf("failed to get build %s", err)
		}

		if !found {
			return atc.Build{}, errors.New("build not found")
		}

		return build, nil
	} else if jobName != "" {
		job, found, err := client.Job(pipelineName, jobName)

		if err != nil {
			return atc.Build{}, fmt.Errorf("failed to get job %s", err)
		}

		if !found {
			return atc.Build{}, errors.New("job not found")
		}

		if job.NextBuild != nil {
			return *job.NextBuild, nil
		} else if job.FinishedBuild != nil {
			return *job.FinishedBuild, nil
		} else {
			return atc.Build{}, errors.New("job has no builds")
		}
	} else {
		allBuilds, err := client.AllBuilds()
		if err != nil {
			return atc.Build{}, fmt.Errorf("failed to get builds %s", err)
		}

		for _, build := range allBuilds {
			if build.JobName == "" {
				return build, nil
			}
		}

		return atc.Build{}, errors.New("no builds match job")
	}
}
开发者ID:zankich,项目名称:fly,代码行数:61,代码来源:helpers.go


注:本文中的github.com/concourse/go-concourse/concourse.Client.JobBuild方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。