continuous-integration - GoCD 从管道中提取以前的工件

标签 continuous-integration go-cd

我有一个创建工件的 GoCD 管道。有什么方法可以让我提取上一次运行的工件来与当前运行进行比较吗?

最佳答案

您可以使用yagocd来做到这一点图书馆:

#!/usr/bin/env python

import logging

from yagocd import Yagocd

if __name__ == '__main__':
    logging.basicConfig(level=logging.DEBUG)
    logging.getLogger("requests").setLevel(logging.WARNING)

    go = Yagocd(
        server='https://build.gocd.io',
        # auth=('username', 'password'),
    )

    # login as guest
    go._session.get('https://build.gocd.io/go/plugin/interact/gocd.guest.user.auth.plugin/index')

    pipeline = go.pipelines['plugins']
    last_instance, previous_to_last = pipeline.history()[:2]

    last_artifacts = list()
    previous_to_last_artifacts = list()

    for stage in last_instance:
        for job in stage:
            for root, folder, files in job.artifacts:
                for artifact in files:
                    last_artifacts.append(artifact)

    for stage in previous_to_last:
        for job in stage:
            for root, folder, files in job.artifacts:
                for artifact in files:
                    previous_to_last_artifacts.append(artifact)

    # Now you can compare artifacts
    # how you like: either calculate set diff
    # or review content difference via `artifact.fetch()` method.

关于continuous-integration - GoCD 从管道中提取以前的工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43729188/

相关文章:

docker - 工作从哪里获取环境变量?

ruby - RVM 和 Jenkins 设置

continuous-integration - Jenkins scm 用户<->邮件映射。如何通过 cli 转储/恢复/编辑

xcode - 持续集成需要 sudo : xcode-select, Bamboo ,和多个 Xcode

gradle - GOCD-我们可以为gradle/gradlew任务运行一个工作目录吗

java - Go 服务器未启动

.net - 与 Mercurial、MSBuild、ASP.NET 持续集成

使用 docker 和 bitbucket 管道的 android 环境

go-cd - 通过 gocd 作业中的任务更新环境变量和参数

Go-CD:如何使用API​​触发管道?