mirror of
https://github.com/lubuntu-team/ci-tooling.git
synced 2025-02-13 14:27:05 +00:00
Prototype merger support.
This commit is contained in:
parent
6bf68cd794
commit
2112e13c3b
@ -121,9 +121,10 @@ class Generator:
|
||||
template += text
|
||||
template = Template(template)
|
||||
|
||||
url = data["packaging_url"]
|
||||
branch = data["packaging_branch"]
|
||||
|
||||
if job_type == "package":
|
||||
url = data["packaging_url"]
|
||||
branch = data["packaging_branch"]
|
||||
upstream = data["upstream_url"]
|
||||
upload_target = data["upload_target"]
|
||||
package_config = template.render(PACKAGING_URL=url,
|
||||
@ -132,6 +133,12 @@ class Generator:
|
||||
NAME=data["name"],
|
||||
RELEASE=data["release"],
|
||||
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:
|
||||
raise ValueError("Invalid job type")
|
||||
|
||||
@ -153,8 +160,6 @@ class Generator:
|
||||
# Authenticate to the 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
|
||||
# job config for each if they match. If there's no existing job found,
|
||||
# just create it
|
||||
@ -166,6 +171,21 @@ class Generator:
|
||||
jobs.append(job_name)
|
||||
|
||||
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"]:
|
||||
job_name = release + "_" + package["name"]
|
||||
# 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>
|
||||
<jenkins.triggers.ReverseBuildTrigger>
|
||||
<spec></spec>
|
||||
<upstreamProjects>jobgenerator</upstreamProjects>
|
||||
<upstreamProjects>merger_{{ NAME }}</upstreamProjects>
|
||||
<threshold>
|
||||
<name>SUCCESS</name>
|
||||
<ordinal>0</ordinal>
|
||||
|
Loading…
x
Reference in New Issue
Block a user