コード例 #1
0
ファイル: ci.py プロジェクト: lfrancioli/hail
def refresh_deploy_jobs(jobs):
    jobs = [
        (FQSHA.from_json(json.loads(job.attributes['target'])),
         job)
        for job in jobs
        if 'target' in job.attributes
    ]
    jobs = [
        (target, job)
        for (target, job) in jobs
        if target.ref in prs.deploy_jobs
    ]
    latest_jobs = {}
    for (target, job) in jobs:
        job2 = latest_jobs.get(target, None)
        if job2 is None:
            latest_jobs[target] = job
        else:
            if job_ordering(job, job2) > 0:
                log.info(
                    f'cancelling {job2.id}, preferring {job.id}'
                )
                try_to_cancel_job(job2)
                latest_jobs[target] = job
            else:
                log.info(
                    f'cancelling {job.id}, preferring {job2.id}'
                )
                try_to_cancel_job(job)
    prs.refresh_from_deploy_jobs(latest_jobs)
コード例 #2
0
ファイル: ci.py プロジェクト: lfrancioli/hail
def refresh_ci_build_jobs(jobs):
    jobs = [
        (FQSHA.from_json(json.loads(job.attributes['source'])),
         FQSHA.from_json(json.loads(job.attributes['target'])),
         job)
        for job in jobs
    ]
    jobs = [(s, t, j) for (s, t, j) in jobs if prs.exists(s, t)]
    latest_jobs = {}
    for (source, target, job) in jobs:
        key = (source, target)
        job2 = latest_jobs.get(key, None)
        if job2 is None:
            latest_jobs[key] = job
        else:
            if job_ordering(job, job2) > 0:
                log.info(
                    f'cancelling {job2.id}, preferring {job.id}'
                )
                try_to_cancel_job(job2)
                latest_jobs[key] = job
            else:
                log.info(
                    f'cancelling {job.id}, preferring {job2.id}'
                )
                try_to_cancel_job(job)
    prs.refresh_from_ci_jobs(latest_jobs)
コード例 #3
0
    def transition(self, other):
        if isinstance(other, Merged):
            raise ValueError(f'bad transition {self} to {other}')

        if (not isinstance(other, Failure)
                and not isinstance(other, Mergeable)
                and not isinstance(other, NoMergeSHA)):
            log.info(f'cancelling unneeded job {self.job.id} {self} {other}')
            try_to_cancel_job(self.job)
        return other
コード例 #4
0
ファイル: build_state.py プロジェクト: lfrancioli/hail
    def transition(self, other):
        if isinstance(other, Merged):
            raise ValueError(f'bad transition {self} to {other}')

        if (not isinstance(other, Failure) and
            not isinstance(other, Mergeable) and
            not isinstance(other, NoMergeSHA)):
            log.info(f'cancelling unneeded job {self.job.id} {self} {other}')
            try_to_cancel_job(self.job)
        return other
コード例 #5
0
def refresh_deploy_jobs(jobs):
    jobs = [(FQSHA.from_json(json.loads(job.attributes['target'])), job)
            for job in jobs if 'target' in job.attributes]
    jobs = [(target, job) for (target, job) in jobs
            if target.ref in prs.deploy_jobs]
    latest_jobs = {}
    for (target, job) in jobs:
        job2 = latest_jobs.get(target, None)
        if job2 is None:
            latest_jobs[target] = job
        else:
            if job_ordering(job, job2) > 0:
                log.info(f'cancelling {job2.id}, preferring {job.id}')
                try_to_cancel_job(job2)
                latest_jobs[target] = job
            else:
                log.info(f'cancelling {job.id}, preferring {job2.id}')
                try_to_cancel_job(job)
    prs.refresh_from_deploy_jobs(latest_jobs)
コード例 #6
0
def refresh_ci_build_jobs(jobs):
    jobs = [(FQSHA.from_json(json.loads(job.attributes['source'])),
             FQSHA.from_json(json.loads(job.attributes['target'])), job)
            for job in jobs]
    jobs = [(s, t, j) for (s, t, j) in jobs if prs.exists(s, t)]
    latest_jobs = {}
    for (source, target, job) in jobs:
        key = (source, target)
        job2 = latest_jobs.get(key, None)
        if job2 is None:
            latest_jobs[key] = job
        else:
            if job_ordering(job, job2) > 0:
                log.info(f'cancelling {job2.id}, preferring {job.id}')
                try_to_cancel_job(job2)
                latest_jobs[key] = job
            else:
                log.info(f'cancelling {job.id}, preferring {job2.id}')
                try_to_cancel_job(job)
    prs.refresh_from_ci_jobs(latest_jobs)