【问题标题】:GoCD pull previous artifact from piplineGoCD 从管道中提取上一个工件
【发布时间】:2017-05-09 03:10:34
【问题描述】:

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

【问题讨论】:

    标签: continuous-integration go-cd


    【解决方案1】:

    您可以使用 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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      相关资源
      最近更新 更多