in services/jenkins-pipeline-monitor/handler.py [0:0]
def jenkins_pipeline_monitor():
# retrieve secret from secert manager
secret = get_secret()
logging.info(f'Secrets retrieved')
# get jenkins object
jenkinsObj = get_jenkins_obj(secret)
logging.info(f'Jenkins obj created')
# get relevant pipeline job
job = get_pipeline_job(jenkinsObj)
logging.info(f'Job fetch {job}')
# get the latest build on the pipeline
latest_build_number = get_latest_build_number(job)
# get builds scheduled for the latest day
latest_day_builds = get_latest_day_builds(job, latest_build_number)
logging.info(f'latest builds {latest_day_builds}')
# exit if no builds found
if not latest_day_builds:
logging.error('No builds for the latest day')
return
# filter latest day builds by desired build type a.k.a release job type
filtered_builds = filter_by_release_job_type(latest_day_builds)
logging.info(f'Builds filtered by desired release job type : {filtered_builds}')
# exit if no builds of desired build type
if not filtered_builds:
logging.error('No builds of desired type')
return
desired_cause = 'hudson.model.Cause$UpstreamCause'
filtered_builds = filter_by_upstream_cause(filtered_builds, desired_cause)
# exit if builds not triggered by UpstreamCause
if not filtered_builds:
logging.error(f'Builds dont belong to desired cause:{desired_cause}')
else:
logging.info(f'Filtered builds by {desired_cause} : {filtered_builds}')
status_check(filtered_builds)