mirror of
https://github.com/lubuntu-team/ci-tooling.git
synced 2025-07-07 13:01:29 +00:00
Move parsing the existing job data to another function, and actually make it functional.
This commit is contained in:
parent
f529f5a1d1
commit
b6d9050604
@ -16,6 +16,7 @@
|
|||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import git
|
import git
|
||||||
|
import time
|
||||||
from os import getenv, path
|
from os import getenv, path
|
||||||
from yaml import CLoader
|
from yaml import CLoader
|
||||||
from yaml import load as yaml_load
|
from yaml import load as yaml_load
|
||||||
@ -173,6 +174,38 @@ class Generator:
|
|||||||
|
|
||||||
return package_config
|
return package_config
|
||||||
|
|
||||||
|
def get_existing_jenkins_jobs(self, server):
|
||||||
|
"""This returns a tuple of all existing Jenkins jobs
|
||||||
|
|
||||||
|
This is separated into a different function to make the code slightly
|
||||||
|
more efficient and clean. With generators being difficult to work with
|
||||||
|
and the need for several high-volume variables, this makes sense.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Start a timer
|
||||||
|
t_start = time.perf_counter()
|
||||||
|
print("Getting list of existing Jenkins jobs...")
|
||||||
|
|
||||||
|
# Get the generator object with the jobs and create an empty list
|
||||||
|
s_jobs = server.get_jobs()
|
||||||
|
jobs = []
|
||||||
|
|
||||||
|
# The list from the server is in the following format:
|
||||||
|
# [('JOBNAME', <jenkinsapi.job.Job JOBNAME>)]
|
||||||
|
# We only want JOBNAME, so let's put that in jobs
|
||||||
|
for job_name in s_jobs:
|
||||||
|
jobs.append(job_name[0])
|
||||||
|
|
||||||
|
# Make sure jobs is a tuple
|
||||||
|
jobs = tuple(jobs)
|
||||||
|
|
||||||
|
# Stop the timer and log the time
|
||||||
|
t_end = time.perf_counter()
|
||||||
|
print(f"Finished in {t_end - t_start:0.4f} seconds.")
|
||||||
|
|
||||||
|
return jobs
|
||||||
|
|
||||||
|
|
||||||
def create_jenkins_jobs(self):
|
def create_jenkins_jobs(self):
|
||||||
"""Interface with Jenkins to create the jobs required
|
"""Interface with Jenkins to create the jobs required
|
||||||
|
|
||||||
@ -189,14 +222,11 @@ class Generator:
|
|||||||
# Authenticate to the Jenkins server
|
# Authenticate to the Jenkins server
|
||||||
server = self.auth_jenkins_server()
|
server = self.auth_jenkins_server()
|
||||||
|
|
||||||
# Iterate through the packages we have in our metadata and update the
|
# Parse the metadata
|
||||||
# job config for each if they match. If there's no existing job found,
|
|
||||||
# just create it
|
|
||||||
metadata = self.parse_metadata()
|
metadata = self.parse_metadata()
|
||||||
jobs = []
|
|
||||||
|
|
||||||
for job_name in server.get_jobs():
|
# Get a list of existing jobs
|
||||||
jobs.append(job_name)
|
jobs = self.get_existing_jenkins_jobs(server)
|
||||||
|
|
||||||
total_rel = set()
|
total_rel = set()
|
||||||
|
|
||||||
@ -229,7 +259,7 @@ class Generator:
|
|||||||
package)
|
package)
|
||||||
if job_name in jobs:
|
if job_name in jobs:
|
||||||
job = server.get_job(job_name)
|
job = server.get_job(job_name)
|
||||||
print(job.update_config(package_config, full_response=True))
|
print(job.update_config(str(package_config), full_response=True))
|
||||||
else:
|
else:
|
||||||
job = server.create_job(job_name, str(package_config))
|
job = server.create_job(job_name, str(package_config))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user