mirror of
https://github.com/lubuntu-team/ci-tooling.git
synced 2025-08-10 10:14:02 +00:00
Prototype merger support.
This commit is contained in:
parent
6bf68cd794
commit
2112e13c3b
@ -121,9 +121,10 @@ class Generator:
|
|||||||
template += text
|
template += text
|
||||||
template = Template(template)
|
template = Template(template)
|
||||||
|
|
||||||
|
url = data["packaging_url"]
|
||||||
|
branch = data["packaging_branch"]
|
||||||
|
|
||||||
if job_type == "package":
|
if job_type == "package":
|
||||||
url = data["packaging_url"]
|
|
||||||
branch = data["packaging_branch"]
|
|
||||||
upstream = data["upstream_url"]
|
upstream = data["upstream_url"]
|
||||||
upload_target = data["upload_target"]
|
upload_target = data["upload_target"]
|
||||||
package_config = template.render(PACKAGING_URL=url,
|
package_config = template.render(PACKAGING_URL=url,
|
||||||
@ -132,6 +133,12 @@ class Generator:
|
|||||||
NAME=data["name"],
|
NAME=data["name"],
|
||||||
RELEASE=data["release"],
|
RELEASE=data["release"],
|
||||||
UPLOAD_TARGET=upload_target)
|
UPLOAD_TARGET=upload_target)
|
||||||
|
elif job_type == "merger":
|
||||||
|
default_branch = data["default_branch"]
|
||||||
|
package_config = template.render(PACKAGING_URL=url,
|
||||||
|
PACKAGING_BRANCH=branch,
|
||||||
|
NAME=data["name"],
|
||||||
|
DEFAULT_BRANCH=default_branch)
|
||||||
else:
|
else:
|
||||||
raise ValueError("Invalid job type")
|
raise ValueError("Invalid job type")
|
||||||
|
|
||||||
@ -153,8 +160,6 @@ class Generator:
|
|||||||
# Authenticate to the Jenkins server
|
# Authenticate to the Jenkins server
|
||||||
server = self.auth_jenkins_server()
|
server = self.auth_jenkins_server()
|
||||||
|
|
||||||
# Assign the packagebuild template to a variable
|
|
||||||
|
|
||||||
# Iterate through the packages we have in our metadata and update the
|
# Iterate through the packages we have in our metadata and update the
|
||||||
# job config for each if they match. If there's no existing job found,
|
# job config for each if they match. If there's no existing job found,
|
||||||
# just create it
|
# just create it
|
||||||
@ -166,6 +171,21 @@ class Generator:
|
|||||||
jobs.append(job_name)
|
jobs.append(job_name)
|
||||||
|
|
||||||
for package in metadata:
|
for package in metadata:
|
||||||
|
# Create the merger jobs first
|
||||||
|
job_name = "merger_" + package["name"]
|
||||||
|
package_config = self.load_config("merger", package)
|
||||||
|
# TODO: This is duplicate code, and it should be consolidated
|
||||||
|
if job_name in jobs:
|
||||||
|
job = server.get_job(job_name)
|
||||||
|
job.update_config(package_config)
|
||||||
|
else:
|
||||||
|
job = server.create_job(job_name, str(package_config))
|
||||||
|
if "merger" in server.views:
|
||||||
|
view = server.views["merger"]
|
||||||
|
else:
|
||||||
|
view = server.views.create("merger")
|
||||||
|
view.add_job(job_name)
|
||||||
|
|
||||||
for release in package["releases"]:
|
for release in package["releases"]:
|
||||||
job_name = release + "_" + package["name"]
|
job_name = release + "_" + package["name"]
|
||||||
# Load the config given the current data
|
# Load the config given the current data
|
||||||
|
75
templates/merger.xml
Normal file
75
templates/merger.xml
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<?xml version='1.1' encoding='UTF-8'?>
|
||||||
|
<project>
|
||||||
|
<actions/>
|
||||||
|
<description></description>
|
||||||
|
<keepDependencies>false</keepDependencies>
|
||||||
|
<properties/>
|
||||||
|
<scm class="hudson.plugins.git.GitSCM" plugin="git@3.9.3">
|
||||||
|
<configVersion>2</configVersion>
|
||||||
|
<userRemoteConfigs>
|
||||||
|
<hudson.plugins.git.UserRemoteConfig>
|
||||||
|
<url>{{ PACKAGING_URL }}</url>
|
||||||
|
</hudson.plugins.git.UserRemoteConfig>
|
||||||
|
</userRemoteConfigs>
|
||||||
|
<branches>
|
||||||
|
<hudson.plugins.git.BranchSpec>
|
||||||
|
<name>*/{{ PACKAGING_BRANCH }}</name>
|
||||||
|
</hudson.plugins.git.BranchSpec>
|
||||||
|
</branches>
|
||||||
|
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||||
|
<submoduleCfg class="list"/>
|
||||||
|
<extensions>
|
||||||
|
<hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
|
||||||
|
<relativeTargetDir>{{ NAME }}</relativeTargetDir>
|
||||||
|
</hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
|
||||||
|
</extensions>
|
||||||
|
</scm>
|
||||||
|
<canRoam>true</canRoam>
|
||||||
|
<disabled>false</disabled>
|
||||||
|
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
|
||||||
|
<blockBuildWhenUpstreamBuilding>true</blockBuildWhenUpstreamBuilding>
|
||||||
|
<triggers>
|
||||||
|
<jenkins.triggers.ReverseBuildTrigger>
|
||||||
|
<spec></spec>
|
||||||
|
<upstreamProjects>jobgenerator</upstreamProjects>
|
||||||
|
<threshold>
|
||||||
|
<name>SUCCESS</name>
|
||||||
|
<ordinal>0</ordinal>
|
||||||
|
<color>BLUE</color>
|
||||||
|
<completeBuild>true</completeBuild>
|
||||||
|
</threshold>
|
||||||
|
</jenkins.triggers.ReverseBuildTrigger>
|
||||||
|
<hudson.triggers.SCMTrigger>
|
||||||
|
<spec>*/5 * * * *</spec>
|
||||||
|
<ignorePostCommitHooks>false</ignorePostCommitHooks>
|
||||||
|
</hudson.triggers.SCMTrigger>
|
||||||
|
</triggers>
|
||||||
|
<concurrentBuild>false</concurrentBuild>
|
||||||
|
<builders>
|
||||||
|
<hudson.tasks.Shell>
|
||||||
|
<command>
|
||||||
|
git checkout {{ DEFAULT_BRANCH }}
|
||||||
|
git checkout {{ PACKAGING_BRANCH }}
|
||||||
|
git merge --ff-only {{ DEFAULT_BRANCH }}
|
||||||
|
git push origin {{ PACKAGING_BRANCH }}
|
||||||
|
</command>
|
||||||
|
</hudson.tasks.Shell>
|
||||||
|
</builders>
|
||||||
|
<publishers>
|
||||||
|
<hudson.plugins.ws__cleanup.WsCleanup plugin="ws-cleanup@0.37">
|
||||||
|
<patterns class="empty-list"/>
|
||||||
|
<deleteDirs>false</deleteDirs>
|
||||||
|
<skipWhenFailed>false</skipWhenFailed>
|
||||||
|
<cleanWhenSuccess>true</cleanWhenSuccess>
|
||||||
|
<cleanWhenUnstable>true</cleanWhenUnstable>
|
||||||
|
<cleanWhenFailure>true</cleanWhenFailure>
|
||||||
|
<cleanWhenNotBuilt>true</cleanWhenNotBuilt>
|
||||||
|
<cleanWhenAborted>true</cleanWhenAborted>
|
||||||
|
<notFailBuild>false</notFailBuild>
|
||||||
|
<cleanupMatrixParent>false</cleanupMatrixParent>
|
||||||
|
<externalDelete></externalDelete>
|
||||||
|
<disableDeferredWipeout>false</disableDeferredWipeout>
|
||||||
|
</hudson.plugins.ws__cleanup.WsCleanup>
|
||||||
|
</publishers>
|
||||||
|
<buildWrappers/>
|
||||||
|
</project>
|
@ -31,7 +31,7 @@
|
|||||||
<triggers>
|
<triggers>
|
||||||
<jenkins.triggers.ReverseBuildTrigger>
|
<jenkins.triggers.ReverseBuildTrigger>
|
||||||
<spec></spec>
|
<spec></spec>
|
||||||
<upstreamProjects>jobgenerator</upstreamProjects>
|
<upstreamProjects>merger_{{ NAME }}</upstreamProjects>
|
||||||
<threshold>
|
<threshold>
|
||||||
<name>SUCCESS</name>
|
<name>SUCCESS</name>
|
||||||
<ordinal>0</ordinal>
|
<ordinal>0</ordinal>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user