首页 文章

GoCD从pipline拉出先前的神器

提问于
浏览
1

我有一个GoCD管道,可以创建一个工件 . 我有什么方法可以将之前运行的工件与当前运行进行比较?

1 回答

  • 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.
    

相关问题