def check_build_job_status()

in src/lambda/codebuild/lambda.py [0:0]


def check_build_job_status(event, context):
    code_build_project_name = event['ResourceProperties']['BuildProject']

    if not helper.Data.get("JobID"):
        raise ValueError("Job ID missing in the polling event.")

    job_id = helper.Data.get("JobID")

    # 'SUCCEEDED' | 'FAILED' | 'FAULT' | 'TIMED_OUT' | 'IN_PROGRESS' | 'STOPPED'
    response = codebuild.batch_get_builds(ids=[job_id])
    build_status = response['builds'][0]['buildStatus']

    if build_status == 'IN_PROGRESS':
        logger.info(build_status)
        return None
    else:
        if build_status == 'SUCCEEDED':
            logger.info(build_status)
            return True
        else:
            msg = "Code Build job '{0}' in project '{1}' exited with a build status of '{2}'." \
                .format(job_id, code_build_project_name, build_status)
            logger.info(msg)
            raise ValueError(msg)