コード例 #1
0
ファイル: factory.py プロジェクト: schrodit/cc-utils
    def _create_repos(self, pipeline_def: JobVariant, raw_dict):
        pipeline_def._repos_dict = {}
        if 'repo' in raw_dict:
            # special case: repo singleton (will vanish once we mv definitions into component-repos)
            repo_dict = raw_dict['repo']
            name = 'source' if 'name' not in repo_dict else repo_dict['name']
            pipeline_def._repos_dict[name] = RepositoryConfig(
                raw_dict=repo_dict,
                logical_name=name,
                qualifier=None,
                is_main_repo=True)
            pipeline_def._main_repository_name = name
        if 'repos' in raw_dict:
            for repo_dict in raw_dict['repos']:
                if not 'cfg_name' in repo_dict:
                    github_cfg = self.cfg_set.github()
                else:
                    github_cfg = self.cfg_set.github(repo_dict['cfg_name'])

                hostname = github_cfg.hostname()
                repo_dict['hostname'] = hostname

                pipeline_def._repos_dict.update({
                    repo_dict['name']:
                    RepositoryConfig(logical_name=repo_dict['name'],
                                     raw_dict=repo_dict,
                                     is_main_repo=False)
                })
コード例 #2
0
ファイル: job.py プロジェクト: enrico-kaack-comp/cc-utils
 def pr_repository(self, name):
     pr_repo = self.repository(name)
     return RepositoryConfig(
         raw_dict=dict(pr_repo.raw),
         logical_name=name,
         qualifier='pr',
         is_pull_request=True
     )
コード例 #3
0
    def setUp(self):
        self.tmp_dir = tempfile.TemporaryDirectory()
        self.meta_dir = os.path.join(self.tmp_dir.name, 'meta')
        os.mkdir(self.meta_dir)
        test_utils.populate_meta_dir(self.meta_dir)
        self.on_error_dir = os.path.join(self.tmp_dir.name, 'on_error_dir')
        os.mkdir(self.on_error_dir)

        self.job_step = PipelineStep(
            name='step1',
            is_synthetic=False,
            notification_policy=StepNotificationPolicy.NOTIFY_PULL_REQUESTS,
            script_type=ScriptType.BOURNE_SHELL,
            raw_dict={},
        )
        self.job_step._notifications_cfg = NotificationCfgSet('default', {})
        resource_registry = ResourceRegistry()
        meta_resource_identifier = ResourceIdentifier(type_name='meta',
                                                      base_name='a_job')
        meta_resource = Resource(resource_identifier=meta_resource_identifier,
                                 raw_dict={})
        resource_registry.add_resource(meta_resource)
        self.job_variant = JobVariant(name='a_job',
                                      raw_dict={},
                                      resource_registry=resource_registry)

        # Set a main repository manually
        test_repo_logical_name = 'test-repository'
        self.job_variant._repos_dict = {}
        self.job_variant._repos_dict[
            test_repo_logical_name] = RepositoryConfig(
                raw_dict={
                    'branch': 'master',
                    'hostname': 'github.foo.bar',
                    'path': 'test/repo'
                },
                logical_name=test_repo_logical_name,
                qualifier=None,
                is_main_repo=True)
        self.job_variant._main_repository_name = test_repo_logical_name

        self.job_variant._traits_dict = {}
        self.cfg_set = MagicMock()
        self.github_cfg = MagicMock()
        self.github_cfg.name = MagicMock(return_value='github_cfg')
        self.email_cfg = MagicMock()
        self.email_cfg.name = MagicMock(return_value='email_cfg')
        self.cfg_set.github = MagicMock(return_value=self.github_cfg)
        self.cfg_set.email = MagicMock(return_value=self.email_cfg)
        ctx_repo_mock = MagicMock(return_value='repo_url')
        ctx_repo_mock.base_url = MagicMock(return_value='repo_url')
        self.cfg_set.ctx_repository = MagicMock(return_value=ctx_repo_mock)

        self.render_step = step_def('notification')

        self.old_cwd = os.getcwd()
        os.chdir(self.tmp_dir.name)
コード例 #4
0
 def _create_repos(self, pipeline_def, raw_dict):
     pipeline_def._repos_dict = {}
     if 'repo' in raw_dict:
         # special case: repo singleton (will vanish once we mv definitions into component-repos)
         repo_dict = raw_dict['repo']
         name = 'source' if 'name' not in repo_dict else repo_dict['name']
         pipeline_def._repos_dict[name] = RepositoryConfig(
             raw_dict=repo_dict,
             logical_name=name,
             qualifier=None,
             is_main_repo=True)
         pipeline_def._main_repository_name = name
     if 'repos' in raw_dict:
         pipeline_def._repos_dict.update({
             cfg_dict['name']:
             RepositoryConfig(logical_name=cfg_dict['name'],
                              raw_dict=cfg_dict,
                              is_main_repo=False)
             for cfg_dict in raw_dict['repos']
         })
コード例 #5
0
 def _repo_cfg(
     path='organisation/reponame',
     branch='master',
     include_paths=['path/to/include'],
     exclude_paths=['path/to/exclude'],
 ):
     return RepositoryConfig(raw_dict={
         'path': path,
         'branch': branch,
         'trigger_paths': {
             'include': include_paths,
             'exclude': exclude_paths,
         }
     })
コード例 #6
0
ファイル: factory.py プロジェクト: gardener/cc-utils
 def _inject_publish_repos(self, pipeline_def):
     # synthesise "put-repositories"
     pipeline_def._publish_repos_dict = {}
     for step in filter(lambda step: step.publish_repository_names(), pipeline_def.steps()):
         for repo_name in step.publish_repository_names():
             # we need to clone the existing repository configuration
             source_repo = pipeline_def._repos_dict[repo_name]
             publish_repo = RepositoryConfig(
                 raw_dict=dict(source_repo.raw),
                 logical_name=repo_name,
                 qualifier='output',
                 is_main_repo=source_repo.is_main_repo(),
             )
             pipeline_def._publish_repos_dict[repo_name] = publish_repo