Add support to CFP in builders sections
- Adds additional support for Config File Provider to builder sections - Move builder/wrapper configuration to a common helper function for reuse Change-Id: Ie80a3abbd42bdd06d138dcd0c5beea26c9a81f26 Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
This commit is contained in:
parent
e1cc03e606
commit
24849929e1
@ -40,6 +40,7 @@ Example::
|
|||||||
import xml.etree.ElementTree as XML
|
import xml.etree.ElementTree as XML
|
||||||
import jenkins_jobs.modules.base
|
import jenkins_jobs.modules.base
|
||||||
from jenkins_jobs.modules import hudson_model
|
from jenkins_jobs.modules import hudson_model
|
||||||
|
from jenkins_jobs.modules.helpers import config_file_provider_builder
|
||||||
from jenkins_jobs.modules.helpers import config_file_provider_settings
|
from jenkins_jobs.modules.helpers import config_file_provider_settings
|
||||||
from jenkins_jobs.errors import JenkinsJobsException
|
from jenkins_jobs.errors import JenkinsJobsException
|
||||||
import logging
|
import logging
|
||||||
@ -1257,6 +1258,36 @@ def multijob(parser, xml_parent, data):
|
|||||||
).text = kill_status
|
).text = kill_status
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_provider(parser, xml_parent, data):
|
||||||
|
"""yaml: config-file-provider
|
||||||
|
Provide configuration files (i.e., settings.xml for maven etc.)
|
||||||
|
which will be copied to the job's workspace.
|
||||||
|
Requires the Jenkins :jenkins-wiki:`Config File Provider Plugin
|
||||||
|
<Config+File+Provider+Plugin>`.
|
||||||
|
|
||||||
|
:arg list files: List of managed config files made up of three
|
||||||
|
parameters
|
||||||
|
|
||||||
|
:files: * **file-id** (`str`) -- The identifier for the managed config
|
||||||
|
file
|
||||||
|
* **target** (`str`) -- Define where the file should be created
|
||||||
|
(optional)
|
||||||
|
* **variable** (`str`) -- Define an environment variable to be
|
||||||
|
used (optional)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. literalinclude::
|
||||||
|
../../tests/builders/fixtures/config-file-provider01.yaml
|
||||||
|
:language: yaml
|
||||||
|
"""
|
||||||
|
cfp = XML.SubElement(xml_parent,
|
||||||
|
'org.jenkinsci.plugins.configfiles.builder.'
|
||||||
|
'ConfigFileBuildStep')
|
||||||
|
cfp.set('plugin', 'config-file-provider')
|
||||||
|
config_file_provider_builder(cfp, data)
|
||||||
|
|
||||||
|
|
||||||
def grails(parser, xml_parent, data):
|
def grails(parser, xml_parent, data):
|
||||||
"""yaml: grails
|
"""yaml: grails
|
||||||
Execute a grails build step. Requires the :jenkins-wiki:`Jenkins Grails
|
Execute a grails build step. Requires the :jenkins-wiki:`Jenkins Grails
|
||||||
|
@ -83,6 +83,25 @@ def build_trends_publisher(plugin_name, xml_element, data):
|
|||||||
xml_config.text = str(config_value)
|
xml_config.text = str(config_value)
|
||||||
|
|
||||||
|
|
||||||
|
def config_file_provider_builder(xml_parent, data):
|
||||||
|
"""Builder / Wrapper helper"""
|
||||||
|
xml_files = XML.SubElement(xml_parent, 'managedFiles')
|
||||||
|
|
||||||
|
files = data.get('files', [])
|
||||||
|
for file in files:
|
||||||
|
xml_file = XML.SubElement(xml_files, 'org.jenkinsci.plugins.'
|
||||||
|
'configfiles.buildwrapper.ManagedFile')
|
||||||
|
file_id = file.get('file-id')
|
||||||
|
if file_id is None:
|
||||||
|
raise JenkinsJobsException("file-id is required for each "
|
||||||
|
"managed configuration file")
|
||||||
|
XML.SubElement(xml_file, 'fileId').text = str(file_id)
|
||||||
|
XML.SubElement(xml_file, 'targetLocation').text = file.get(
|
||||||
|
'target', '')
|
||||||
|
XML.SubElement(xml_file, 'variable').text = file.get(
|
||||||
|
'variable', '')
|
||||||
|
|
||||||
|
|
||||||
def config_file_provider_settings(xml_parent, data):
|
def config_file_provider_settings(xml_parent, data):
|
||||||
settings = {
|
settings = {
|
||||||
'default-settings':
|
'default-settings':
|
||||||
|
@ -27,6 +27,7 @@ import xml.etree.ElementTree as XML
|
|||||||
import jenkins_jobs.modules.base
|
import jenkins_jobs.modules.base
|
||||||
from jenkins_jobs.errors import JenkinsJobsException
|
from jenkins_jobs.errors import JenkinsJobsException
|
||||||
from jenkins_jobs.modules.builders import create_builders
|
from jenkins_jobs.modules.builders import create_builders
|
||||||
|
from jenkins_jobs.modules.helpers import config_file_provider_builder
|
||||||
|
|
||||||
|
|
||||||
def ci_skip(parser, xml_parent, data):
|
def ci_skip(parser, xml_parent, data):
|
||||||
@ -64,15 +65,15 @@ def config_file_provider(parser, xml_parent, data):
|
|||||||
Requires the Jenkins :jenkins-wiki:`Config File Provider Plugin
|
Requires the Jenkins :jenkins-wiki:`Config File Provider Plugin
|
||||||
<Config+File+Provider+Plugin>`.
|
<Config+File+Provider+Plugin>`.
|
||||||
|
|
||||||
:arg list files: List of managed config files made up of three\
|
:arg list files: List of managed config files made up of three
|
||||||
parameters
|
parameters
|
||||||
|
|
||||||
:Parameter: * **file-id** (`str`)\
|
:files: * **file-id** (`str`) -- The identifier for the managed config
|
||||||
The identifier for the managed config file
|
file
|
||||||
:Parameter: * **target** (`str`)\
|
* **target** (`str`) -- Define where the file should be created
|
||||||
Define where the file should be created (optional)
|
(optional)
|
||||||
:Parameter: * **variable** (`str`)\
|
* **variable** (`str`) -- Define an environment variable to be
|
||||||
Define an environment variable to be used (optional)
|
used (optional)
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
@ -80,23 +81,10 @@ def config_file_provider(parser, xml_parent, data):
|
|||||||
/../../tests/wrappers/fixtures/config-file-provider003.yaml
|
/../../tests/wrappers/fixtures/config-file-provider003.yaml
|
||||||
:language: yaml
|
:language: yaml
|
||||||
"""
|
"""
|
||||||
top = XML.SubElement(xml_parent, 'org.jenkinsci.plugins.configfiles.'
|
cfp = XML.SubElement(xml_parent, 'org.jenkinsci.plugins.configfiles.'
|
||||||
'buildwrapper.ConfigFileBuildWrapper')
|
'buildwrapper.ConfigFileBuildWrapper')
|
||||||
xml_files = XML.SubElement(top, 'managedFiles')
|
cfp.set('plugin', 'config-file-provider')
|
||||||
|
config_file_provider_builder(cfp, data)
|
||||||
files = data.get('files', [])
|
|
||||||
for file in files:
|
|
||||||
xml_file = XML.SubElement(xml_files, 'org.jenkinsci.plugins.'
|
|
||||||
'configfiles.buildwrapper.ManagedFile')
|
|
||||||
file_id = file.get('file-id')
|
|
||||||
if file_id is None:
|
|
||||||
raise JenkinsJobsException("file-id is required for each "
|
|
||||||
"managed configuration file")
|
|
||||||
XML.SubElement(xml_file, 'fileId').text = str(file_id)
|
|
||||||
XML.SubElement(xml_file, 'targetLocation').text = \
|
|
||||||
file.get('target', '')
|
|
||||||
XML.SubElement(xml_file, 'variable').text = \
|
|
||||||
file.get('variable', '')
|
|
||||||
|
|
||||||
|
|
||||||
def logfilesize(parser, xml_parent, data):
|
def logfilesize(parser, xml_parent, data):
|
||||||
|
@ -51,6 +51,7 @@ jenkins_jobs.builders =
|
|||||||
change-assembly-version=jenkins_jobs.modules.builders:change_assembly_version
|
change-assembly-version=jenkins_jobs.modules.builders:change_assembly_version
|
||||||
cmake=jenkins_jobs.modules.builders:cmake
|
cmake=jenkins_jobs.modules.builders:cmake
|
||||||
conditional-step=jenkins_jobs.modules.builders:conditional_step
|
conditional-step=jenkins_jobs.modules.builders:conditional_step
|
||||||
|
config-file-provider=jenkins_jobs.modules.builders:config_file_provider
|
||||||
copyartifact=jenkins_jobs.modules.builders:copyartifact
|
copyartifact=jenkins_jobs.modules.builders:copyartifact
|
||||||
critical-block-start=jenkins_jobs.modules.builders:critical_block_start
|
critical-block-start=jenkins_jobs.modules.builders:critical_block_start
|
||||||
critical-block-end=jenkins_jobs.modules.builders:critical_block_end
|
critical-block-end=jenkins_jobs.modules.builders:critical_block_end
|
||||||
|
14
tests/builders/fixtures/config-file-provider01.xml
Normal file
14
tests/builders/fixtures/config-file-provider01.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<project>
|
||||||
|
<builders>
|
||||||
|
<org.jenkinsci.plugins.configfiles.builder.ConfigFileBuildStep plugin="config-file-provider">
|
||||||
|
<managedFiles>
|
||||||
|
<org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile>
|
||||||
|
<fileId>org.jenkinsci.plugins.configfiles.maven.MavenSettingsConfig0123456789012</fileId>
|
||||||
|
<targetLocation>target</targetLocation>
|
||||||
|
<variable>variable</variable>
|
||||||
|
</org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile>
|
||||||
|
</managedFiles>
|
||||||
|
</org.jenkinsci.plugins.configfiles.builder.ConfigFileBuildStep>
|
||||||
|
</builders>
|
||||||
|
</project>
|
6
tests/builders/fixtures/config-file-provider01.yaml
Normal file
6
tests/builders/fixtures/config-file-provider01.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
builders:
|
||||||
|
- config-file-provider:
|
||||||
|
files:
|
||||||
|
- file-id: org.jenkinsci.plugins.configfiles.maven.MavenSettingsConfig0123456789012
|
||||||
|
target: target
|
||||||
|
variable: variable
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<project>
|
<project>
|
||||||
<buildWrappers>
|
<buildWrappers>
|
||||||
<org.jenkinsci.plugins.configfiles.buildwrapper.ConfigFileBuildWrapper>
|
<org.jenkinsci.plugins.configfiles.buildwrapper.ConfigFileBuildWrapper plugin="config-file-provider">
|
||||||
<managedFiles>
|
<managedFiles>
|
||||||
<org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile>
|
<org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile>
|
||||||
<fileId>org.jenkinsci.plugins.configfiles.custom.CustomConfig1409250932722</fileId>
|
<fileId>org.jenkinsci.plugins.configfiles.custom.CustomConfig1409250932722</fileId>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<project>
|
<project>
|
||||||
<buildWrappers>
|
<buildWrappers>
|
||||||
<org.jenkinsci.plugins.configfiles.buildwrapper.ConfigFileBuildWrapper>
|
<org.jenkinsci.plugins.configfiles.buildwrapper.ConfigFileBuildWrapper plugin="config-file-provider">
|
||||||
<managedFiles>
|
<managedFiles>
|
||||||
<org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile>
|
<org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile>
|
||||||
<fileId>org.jenkinsci.plugins.configfiles.custom.CustomConfig1234</fileId>
|
<fileId>org.jenkinsci.plugins.configfiles.custom.CustomConfig1234</fileId>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<project>
|
<project>
|
||||||
<buildWrappers>
|
<buildWrappers>
|
||||||
<org.jenkinsci.plugins.configfiles.buildwrapper.ConfigFileBuildWrapper>
|
<org.jenkinsci.plugins.configfiles.buildwrapper.ConfigFileBuildWrapper plugin="config-file-provider">
|
||||||
<managedFiles>
|
<managedFiles>
|
||||||
<org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile>
|
<org.jenkinsci.plugins.configfiles.buildwrapper.ManagedFile>
|
||||||
<fileId>org.jenkinsci.plugins.configfiles.custom.CustomConfig1234</fileId>
|
<fileId>org.jenkinsci.plugins.configfiles.custom.CustomConfig1234</fileId>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user