blob: 8dd7047f3fe6664e0e3108888ab839754094584f [file] [log] [blame]
#!/usr/bin/env python
import sys
import re
from xml.sax.saxutils import escape
pipeline_git_url = sys.argv[1]
pipeline_git_path = sys.argv[2]
description = open(sys.argv[3]).read()
template = '''\
<?xml version='1.0' encoding='UTF-8'?>
<flow-definition plugin="workflow-job@2.15">
<description>{description}</description>
<keepDependencies>false</keepDependencies>
<properties>
<com.sonyericsson.jenkins.plugins.bfa.model.ScannerJobProperty plugin="build-failure-analyzer@1.19.0">
<doNotScan>false</doNotScan>
</com.sonyericsson.jenkins.plugins.bfa.model.ScannerJobProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.27">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
{extra_properties}
</properties>
<definition class="org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition" plugin="workflow-cps@2.41">
<scm class="hudson.plugins.git.GitSCM" plugin="git@3.6.1">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>{pipeline_git_url}</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>*/master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<submoduleCfg class="list"/>
<extensions/>
</scm>
<scriptPath>{pipeline_git_path}</scriptPath>
<lightweight>true</lightweight>
</definition>
<triggers/>
<disabled>false</disabled>
</flow-definition>
'''
# Bad hack to set throttle parameter if 'relay' is in the jobname
extra_properties = ''
if 'relay' in pipeline_git_path:
extra_properties += '''
<hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@2.0.1">
<maxConcurrentPerNode>1</maxConcurrentPerNode>
<maxConcurrentTotal>1</maxConcurrentTotal>
<categories class="java.util.concurrent.CopyOnWriteArrayList"/>
<throttleEnabled>true</throttleEnabled>
<throttleOption>project</throttleOption>
<limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams>
<paramsToUseForLimit></paramsToUseForLimit>
</hudson.plugins.throttleconcurrents.ThrottleJobProperty>
'''
variables = {
"pipeline_git_url": escape(pipeline_git_url),
"pipeline_git_path": escape(pipeline_git_path),
"extra_properties": extra_properties,
}
variables['description'] = escape(description.format(**variables))
sys.stdout.write(template.format(**variables))