diff options
26 files changed, 304 insertions, 6 deletions
diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index 7e532ae4..57199cdc 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -3958,6 +3958,66 @@ def description_setter(registry, xml_parent, data): descriptionsetter, data, mapping, fail_required=True) +def build_publish_docker_image(registry, xml_parent, data): + """yaml: build-publish-docker-image + Requires the Jenkins :jenkins-wiki:`CloudBees Docker Build and + Publish plugin <CloudBees+Docker+Build+and+Publish+plugin>`. + + :arg str docker-registry-url: URL to the Docker registry you are + using (default '') + :arg str image: Repository name to be applied to the resulting image + in case of success (default '') + :arg str docker-file-directory: Build step that sends a Dockerfile for + building to docker host that used for this build run (default '') + :arg bool push-on-success: Resulting docker image will be pushed to + the registry (or registries) specified within the + "Image" field (default false) + :arg str push-credentials-id: Credentials to push to a private + registry (default '') + :arg bool clean-images: Option to clean local images (default false) + :arg bool jenkins-job-delete: Attempt to remove images when jenkins + deletes the run (default false) + :arg str cloud: Cloud to use to build image (default '') + + Minimal example: + + .. literalinclude:: + /../../tests/builders/fixtures/build-publish-docker-image-minimal.yaml + + Full example: + + .. literalinclude:: + /../../tests/builders/fixtures/build-publish-docker-image-full.yaml + """ + dbp = XML.SubElement(xml_parent, + 'com.nirima.jenkins.plugins.docker.builder' + '.DockerBuilderPublisher') + dbp.set('plugin', 'docker-plugin') + + from_registry = XML.SubElement(dbp, 'fromRegistry') + from_registry.set('plugin', 'docker-commons') + from_registry_mapping = [ + ('docker-registry-url', 'url', ''), + ] + helpers.convert_mapping_to_xml( + from_registry, data, from_registry_mapping, + fail_required=False) + + tags = XML.SubElement(dbp, 'tags') + XML.SubElement(tags, 'string').text = data.get('image', '') + + mapping = [ + ('docker-file-directory', 'dockerFileDirectory', ''), + ('push-on-success', 'pushOnSuccess', False), + ('push-credentials-id', 'pushCredentialsId', ''), + ('clean-images', 'cleanImages', False), + ('jenkins-job-delete', 'cleanupWithJenkinsJobDelete', False), + ('cloud', 'cloud', ''), + ] + helpers.convert_mapping_to_xml( + dbp, data, mapping, fail_required=False) + + def docker_build_publish(parse, xml_parent, data): """yaml: docker-build-publish Requires the Jenkins :jenkins-wiki:`Docker build publish Plugin @@ -4337,6 +4397,8 @@ def ansible_playbook(parser, xml_parent, data): :arg int workers: Specify number of parallel processes to use (default 5) :arg str credentials-id: The ID of credentials for the SSH connections. Only private key authentication is supported (default '') + :arg str vault-credentials-id: The ID of credentials for the vault + decryption (default '') :arg bool sudo: Run operations with sudo. It works only when the remote user is sudoer with nopasswd option (default false) :arg str sudo-user: Desired sudo user. "root" is used when this field is @@ -4416,6 +4478,8 @@ def ansible_playbook(parser, xml_parent, data): 'task-to-start-at', '') XML.SubElement(plugin, 'credentialsId').text = data.get( 'credentials-id', '') + XML.SubElement(plugin, 'vaultCredentialsId').text = data.get( + 'vault-credentials-id', '') if data.get('sudo', False): XML.SubElement(plugin, 'sudo').text = 'true' XML.SubElement(plugin, 'sudoUser').text = data.get('sudo-user', '') diff --git a/jenkins_jobs/modules/helpers.py b/jenkins_jobs/modules/helpers.py index 28671201..d4bea4ca 100644 --- a/jenkins_jobs/modules/helpers.py +++ b/jenkins_jobs/modules/helpers.py @@ -155,7 +155,7 @@ def config_file_provider_settings(xml_parent, data): if 'global-settings' in data: # Support for Config File Provider global_settings_file = str(data['global-settings']) - global_settings_type = data.get('settings-type', 'file') + global_settings_type = data.get('global-settings-type', 'file') # For cfp versions <2.10.0 we are able to detect cfp via the config # settings name. diff --git a/jenkins_jobs/modules/project_multibranch.py b/jenkins_jobs/modules/project_multibranch.py index 084aff47..207594f0 100644 --- a/jenkins_jobs/modules/project_multibranch.py +++ b/jenkins_jobs/modules/project_multibranch.py @@ -969,6 +969,11 @@ def github_scm(xml_parent, data): helpers.convert_mapping_to_xml( dpro, data, dpro_mapping, fail_required=True) + if data.get('head-filter-regex', None): + rshf = XML.SubElement(traits, + 'jenkins.scm.impl.trait.RegexSCMHeadFilterTrait') + XML.SubElement(rshf, 'regex').text = data.get('head-filter-regex') + if data.get('property-strategies', None): property_strategies(xml_parent, data) diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py index cd3b99ff..126077cf 100644 --- a/jenkins_jobs/modules/publishers.py +++ b/jenkins_jobs/modules/publishers.py @@ -1175,6 +1175,10 @@ def ftp(registry, xml_parent, data): directories (default false). :arg bool verbose: adds lots of detail useful for debug to the console but generally should be left off (default false) + :arg int retries: the number of times to retry this server in the event of + failure (optional) + :arg int retry-delay: the time to wait, in milliseconds, before attempting + another transfer (default 10000) Minimal Example: @@ -1191,6 +1195,7 @@ def ftp(registry, xml_parent, data): plugin_tag = 'jenkins.plugins.publish__over__ftp.BapFtpPublisherPlugin' publisher_tag = 'jenkins.plugins.publish__over__ftp.BapFtpPublisher' transfer_tag = 'jenkins.plugins.publish__over__ftp.BapFtpTransfer' + retry_tag = 'jenkins.plugins.publish_over_ftp.BapFtpRetry' plugin_reference_tag = 'jenkins.plugins.publish_over_ftp.' \ 'BapFtpPublisherPlugin' (_, transfer_node) = base_publish_over(xml_parent, @@ -1199,6 +1204,7 @@ def ftp(registry, xml_parent, data): plugin_tag, publisher_tag, transfer_tag, + retry_tag, plugin_reference_tag) mapping = [('', 'asciiMode', 'false')] helpers.convert_mapping_to_xml( @@ -1361,6 +1367,23 @@ def cucumber_reports(registry, xml_parent, data): (default false) :arg bool parallel-testing: Run same test in parallel for multiple devices (default false) + :arg int failed-steps-number: Maximum number of failed steps above which + build result is changed (default 0) + :arg int skipped-steps-number: Maximum number of skipped steps above which + build result is changed (default 0) + :arg int pending-steps-number: Maximum number of pending steps above which + build result is changed (default 0) + :arg int undefined-steps-number: Maximum number of undefined steps above + which build result is changed (default 0) + :arg int failed-scenarios-number: Maximum number of failed scenarios above + which build result is changed (default 0) + :arg int failed-features-number: Maximum number of failed features above + which build result is changed (default 0) + :arg list build-status: Build result to which the build should be set + when the report becomes failed or unstable (default '') + :arg int trends-limit: Number of past reports that should be presented. + Zero means unlimited number of builds (default 0) + :arg list sorting-method: Result sorting order (default 'NATURAL') Full example: @@ -1379,6 +1402,8 @@ def cucumber_reports(registry, xml_parent, data): 'CucumberReportPublisher') cucumber_reports.set('plugin', 'cucumber-reports') + valid_build_status = ['', 'UNSTABLE', 'FAILURE'] + valid_sorting_method = ['NATURAL', 'ALPHABETICAL'] mappings = [ ('json-reports-path', 'jsonReportDirectory', ''), ('plugin-url-path', 'pluginUrlPath', ''), @@ -1390,11 +1415,37 @@ def cucumber_reports(registry, xml_parent, data): ('missing-fails', 'missingFails', False), ('no-flash-charts', 'noFlashCharts', False), ('ignore-failed-tests', 'ignoreFailedTests', False), - ('parallel-testing', 'parallelTesting', False) + ('parallel-testing', 'parallelTesting', False), + ('failed-steps-number', 'failedStepsNumber', 0), + ('skipped-steps-number', 'skippedStepsNumber', 0), + ('pending-steps-number', 'pendingStepsNumber', 0), + ('undefined-steps-number', 'undefinedStepsNumber', 0), + ('failed-scenarios-number', 'failedScenariosNumber', 0), + ('failed-features-number', 'failedFeaturesNumber', 0), + ('build-status', 'buildStatus', '', valid_build_status), + ('trends-limit', 'trendsLimit', 0), + ('sorting-method', 'sortingMethod', 'NATURAL', valid_sorting_method), ] helpers.convert_mapping_to_xml( cucumber_reports, data, mappings, fail_required=True) + if 'sorting-values' in data: + format_dict = { + 'classifications': 'net.masterthought.jenkins' + '.CucumberReportPublisher_-Classification' + } + classifications_tag = XML.SubElement( + cucumber_reports, 'classifications') + for values in data['sorting-values']: + for value, params in values.items(): + cucumber_report_publisher = XML.SubElement( + classifications_tag, format_dict.get('classifications')) + XML.SubElement( + cucumber_report_publisher, 'key').text = params.get('key') + XML.SubElement( + cucumber_report_publisher, 'value').text = params.get( + 'value') + def cucumber_testresult(registry, xml_parent, data): """yaml: cucumber-testresult @@ -1916,6 +1967,10 @@ def ssh(registry, xml_parent, data): directories (default false). :arg bool verbose: adds lots of detail useful for debug to the console but generally should be left off (default false) + :arg int retries: the number of times to retry this server in the event of + failure (optional) + :arg int retry-delay: the time to wait, in milliseconds, before attempting + another transfer (default 10000) Minimal Example: @@ -1931,6 +1986,7 @@ def ssh(registry, xml_parent, data): tag_prefix = 'jenkins.plugins.publish' publisher_tag = '%s__over__ssh.BapSshPublisher' % tag_prefix transfer_tag = '%s__over__ssh.BapSshTransfer' % tag_prefix + retry_tag = '%s_over_ssh.BapSshRetry' % tag_prefix reference_tag = '%s_over_ssh.BapSshPublisherPlugin' % tag_prefix if xml_parent.tag == 'publishers': @@ -1941,7 +1997,8 @@ def ssh(registry, xml_parent, data): is_builder = True base_publish_over(xml_parent, data, console_prefix, plugin_tag, - publisher_tag, transfer_tag, reference_tag, is_builder) + publisher_tag, transfer_tag, retry_tag, reference_tag, + is_builder) def pipeline(registry, xml_parent, data): @@ -2679,8 +2736,8 @@ def groovy_postbuild(registry, xml_parent, data): def base_publish_over(xml_parent, data, console_prefix, plugin_tag, publisher_tag, - transferset_tag, reference_plugin_tag, - is_builder=False): + transferset_tag, retry_tag, + reference_plugin_tag, is_builder=False): outer = XML.SubElement(xml_parent, plugin_tag) # 'Publish over SSH' builder has an extra top delegate element if xml_parent.tag == 'builders' or is_builder: @@ -2721,6 +2778,12 @@ def base_publish_over(xml_parent, data, console_prefix, XML.SubElement(inner, 'useWorkspaceInPromotion').text = 'false' XML.SubElement(inner, 'usePromotionTimestamp').text = 'false' + if 'retries' in data: + retry = XML.SubElement(inner, 'retry', {'class': retry_tag}) + XML.SubElement(retry, 'retries').text = str(data.get('retries', 0)) + XML.SubElement(retry, 'retryDelay').text = str( + data.get('retry-delay', 10000)) + XML.SubElement(delegate, 'continueOnError').text = 'false' XML.SubElement(delegate, 'failOnError').text = str( data.get('fail-on-error', False)).lower() @@ -2753,6 +2816,10 @@ def cifs(registry, xml_parent, data): directories (default false). :arg bool verbose: adds lots of detail useful for debug to the console but generally should be left off (default false) + :arg int retries: the number of times to retry this server in the event of + failure (optional) + :arg int retry-delay: the time to wait, in milliseconds, before attempting + another transfer (default 10000) Minimal Example: @@ -2774,6 +2841,7 @@ def cifs(registry, xml_parent, data): is_builder = True publisher_tag = 'jenkins.plugins.publish__over__cifs.CifsPublisher' transfer_tag = 'jenkins.plugins.publish__over__cifs.CifsTransfer' + retry_tag = 'jenkins.plugins.publish_over_cifs.CifsRetry' plugin_reference_tag = ('jenkins.plugins.publish_over_cifs.' 'CifsPublisherPlugin') base_publish_over(xml_parent, @@ -2782,6 +2850,7 @@ def cifs(registry, xml_parent, data): plugin_tag, publisher_tag, transfer_tag, + retry_tag, plugin_reference_tag, is_builder) @@ -7,7 +7,7 @@ warning-is-error = 1 [metadata] name = jenkins-job-builder author = OpenStack Infrastructure Team -author_email = openstack-infra@lists.openstack.org +author-email = jenkins-job-builder@googlegroups.com summary = Manage Jenkins jobs with YAML description-file = README.rst license = Apache License, Version 2.0 diff --git a/tests/builders/fixtures/ansible-playbook001.xml b/tests/builders/fixtures/ansible-playbook001.xml index 4880b518..662321b3 100644 --- a/tests/builders/fixtures/ansible-playbook001.xml +++ b/tests/builders/fixtures/ansible-playbook001.xml @@ -11,6 +11,7 @@ <skippedTags/> <startAtTask/> <credentialsId/> + <vaultCredentialsId/> <sudo>false</sudo> <forks>5</forks> <unbufferedOutput>true</unbufferedOutput> diff --git a/tests/builders/fixtures/ansible-playbook002.xml b/tests/builders/fixtures/ansible-playbook002.xml index 680f6d5c..21c1ae0b 100644 --- a/tests/builders/fixtures/ansible-playbook002.xml +++ b/tests/builders/fixtures/ansible-playbook002.xml @@ -15,6 +15,7 @@ machine02.example.com <skippedTags>ovirt</skippedTags> <startAtTask>Deploy application</startAtTask> <credentialsId>0891c950-487b-4749-aa69-d87425e14459</credentialsId> + <vaultCredentialsId>0421b950-487b-4749-aa69-d87425e14459</vaultCredentialsId> <sudo>true</sudo> <sudoUser>cloud-user</sudoUser> <forks>2</forks> diff --git a/tests/builders/fixtures/ansible-playbook002.yaml b/tests/builders/fixtures/ansible-playbook002.yaml index 28ec5f44..db63b0ca 100644 --- a/tests/builders/fixtures/ansible-playbook002.yaml +++ b/tests/builders/fixtures/ansible-playbook002.yaml @@ -14,6 +14,7 @@ builders: task-to-start-at: "Deploy application" workers: 2 credentials-id: "0891c950-487b-4749-aa69-d87425e14459" + vault-credentials-id: "0421b950-487b-4749-aa69-d87425e14459" sudo: true sudo-user: "cloud-user" unbuffered-output: false diff --git a/tests/builders/fixtures/ansible-playbook003.xml b/tests/builders/fixtures/ansible-playbook003.xml index eecfc273..31474925 100644 --- a/tests/builders/fixtures/ansible-playbook003.xml +++ b/tests/builders/fixtures/ansible-playbook003.xml @@ -9,6 +9,7 @@ <skippedTags/> <startAtTask/> <credentialsId/> + <vaultCredentialsId/> <sudo>false</sudo> <forks>5</forks> <unbufferedOutput>true</unbufferedOutput> diff --git a/tests/builders/fixtures/build-publish-docker-image-full.xml b/tests/builders/fixtures/build-publish-docker-image-full.xml new file mode 100644 index 00000000..d0e99bd1 --- /dev/null +++ b/tests/builders/fixtures/build-publish-docker-image-full.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <builders> + <com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher plugin="docker-plugin"> + <fromRegistry plugin="docker-commons"> + <url>Docker registry URL</url> + </fromRegistry> + <tags> + <string>Image string</string> + </tags> + <dockerFileDirectory>Directory for Dockerfile</dockerFileDirectory> + <pushOnSuccess>true</pushOnSuccess> + <pushCredentialsId>71e4f29c-162b-40d0-85d9-3ddfba2911a0</pushCredentialsId> + <cleanImages>true</cleanImages> + <cleanupWithJenkinsJobDelete>true</cleanupWithJenkinsJobDelete> + <cloud>cloud</cloud> + </com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher> + </builders> +</project> diff --git a/tests/builders/fixtures/build-publish-docker-image-full.yaml b/tests/builders/fixtures/build-publish-docker-image-full.yaml new file mode 100644 index 00000000..2469d11e --- /dev/null +++ b/tests/builders/fixtures/build-publish-docker-image-full.yaml @@ -0,0 +1,10 @@ +builders: + - build-publish-docker-image: + docker-registry-url: Docker registry URL + image: Image string + docker-file-directory: Directory for Dockerfile + push-on-success: true + push-credentials-id: 71e4f29c-162b-40d0-85d9-3ddfba2911a0 + clean-images: true + jenkins-job-delete: true + cloud: cloud diff --git a/tests/builders/fixtures/build-publish-docker-image-minimal.xml b/tests/builders/fixtures/build-publish-docker-image-minimal.xml new file mode 100644 index 00000000..3e616113 --- /dev/null +++ b/tests/builders/fixtures/build-publish-docker-image-minimal.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <builders> + <com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher plugin="docker-plugin"> + <fromRegistry plugin="docker-commons"> + <url/> + </fromRegistry> + <tags> + <string/> + </tags> + <dockerFileDirectory/> + <pushOnSuccess>false</pushOnSuccess> + <pushCredentialsId/> + <cleanImages>false</cleanImages> + <cleanupWithJenkinsJobDelete>false</cleanupWithJenkinsJobDelete> + <cloud/> + </com.nirima.jenkins.plugins.docker.builder.DockerBuilderPublisher> + </builders> +</project> diff --git a/tests/builders/fixtures/build-publish-docker-image-minimal.yaml b/tests/builders/fixtures/build-publish-docker-image-minimal.yaml new file mode 100644 index 00000000..4497d40e --- /dev/null +++ b/tests/builders/fixtures/build-publish-docker-image-minimal.yaml @@ -0,0 +1,2 @@ +builders: + - build-publish-docker-image diff --git a/tests/general/fixtures/project-maven-global-settings-type.xml b/tests/general/fixtures/project-maven-global-settings-type.xml new file mode 100644 index 00000000..fb3fa50a --- /dev/null +++ b/tests/general/fixtures/project-maven-global-settings-type.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<maven2-moduleset> + <goals>deploy</goals> + <ignoreUpstremChanges>true</ignoreUpstremChanges> + <rootPOM>pom.xml</rootPOM> + <aggregatorStyleBuild>true</aggregatorStyleBuild> + <incrementalBuild>false</incrementalBuild> + <siteArchivingDisabled>false</siteArchivingDisabled> + <fingerprintingDisabled>false</fingerprintingDisabled> + <archivingDisabled>false</archivingDisabled> + <resolveDependencies>false</resolveDependencies> + <processPlugins>false</processPlugins> + <mavenValidationLevel>-1</mavenValidationLevel> + <runHeadless>false</runHeadless> + <disableTriggerDownstreamProjects>false</disableTriggerDownstreamProjects> + <settings class="jenkins.mvn.FilePathSettingsProvider"> + <path>test</path> + </settings> + <globalSettings class="org.jenkinsci.plugins.configfiles.maven.job.MvnGlobalSettingsProvider"> + <settingsConfigId>test</settingsConfigId> + </globalSettings> + <runPostStepsIfResult> + <name>FAILURE</name> + <ordinal>2</ordinal> + <color>RED</color> + </runPostStepsIfResult> + <actions/> + <keepDependencies>false</keepDependencies> + <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> + <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> + <concurrentBuild>false</concurrentBuild> + <canRoam>true</canRoam> +</maven2-moduleset> diff --git a/tests/general/fixtures/project-maven-global-settings-type.yaml b/tests/general/fixtures/project-maven-global-settings-type.yaml new file mode 100644 index 00000000..fc636ea7 --- /dev/null +++ b/tests/general/fixtures/project-maven-global-settings-type.yaml @@ -0,0 +1,7 @@ +project-type: maven +maven: + goals: deploy + settings-type: file + settings: test + global-settings-type: cfp + global-settings: test diff --git a/tests/multibranch/fixtures/scm_github_full.xml b/tests/multibranch/fixtures/scm_github_full.xml index a74e2e6d..cc4efcc1 100644 --- a/tests/multibranch/fixtures/scm_github_full.xml +++ b/tests/multibranch/fixtures/scm_github_full.xml @@ -52,6 +52,9 @@ <org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait> <strategyId>3</strategyId> </org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait> + <jenkins.scm.impl.trait.RegexSCMHeadFilterTrait> + <regex>(.*/master|.*/release/.*)</regex> + </jenkins.scm.impl.trait.RegexSCMHeadFilterTrait> <jenkins.plugins.git.traits.CleanAfterCheckoutTrait> <extension class="hudson.plugins.git.extensions.impl.CleanCheckout"/> </jenkins.plugins.git.traits.CleanAfterCheckoutTrait> diff --git a/tests/multibranch/fixtures/scm_github_full.yaml b/tests/multibranch/fixtures/scm_github_full.yaml index 9b74e837..a45ecb65 100644 --- a/tests/multibranch/fixtures/scm_github_full.yaml +++ b/tests/multibranch/fixtures/scm_github_full.yaml @@ -10,6 +10,7 @@ scm: repo-owner: example-owner credentials-id: example-credential branch-discovery: all + head-filter-regex: "(.*/master|.*/release/.*)" discover-pr-forks-strategy: both discover-pr-forks-trust: everyone discover-pr-origin: both diff --git a/tests/publishers/fixtures/cifs-full.xml b/tests/publishers/fixtures/cifs-full.xml index 363348be..0399fc5e 100644 --- a/tests/publishers/fixtures/cifs-full.xml +++ b/tests/publishers/fixtures/cifs-full.xml @@ -21,6 +21,10 @@ </transfers> <useWorkspaceInPromotion>false</useWorkspaceInPromotion> <usePromotionTimestamp>false</usePromotionTimestamp> + <retry class="jenkins.plugins.publish_over_cifs.CifsRetry"> + <retries>99</retries> + <retryDelay>12345</retryDelay> + </retry> </jenkins.plugins.publish__over__cifs.CifsPublisher> </publishers> <continueOnError>false</continueOnError> diff --git a/tests/publishers/fixtures/cifs-full.yaml b/tests/publishers/fixtures/cifs-full.yaml index 830e28d1..60af1dbe 100644 --- a/tests/publishers/fixtures/cifs-full.yaml +++ b/tests/publishers/fixtures/cifs-full.yaml @@ -10,3 +10,5 @@ publishers: fail-on-error: true flatten: true verbose: true + retries: 99 + retry-delay: 12345 diff --git a/tests/publishers/fixtures/cucumber-reports-full.xml b/tests/publishers/fixtures/cucumber-reports-full.xml index 4d6273e6..42c2eef8 100644 --- a/tests/publishers/fixtures/cucumber-reports-full.xml +++ b/tests/publishers/fixtures/cucumber-reports-full.xml @@ -13,6 +13,25 @@ <noFlashCharts>true</noFlashCharts> <ignoreFailedTests>true</ignoreFailedTests> <parallelTesting>true</parallelTesting> + <failedStepsNumber>1</failedStepsNumber> + <skippedStepsNumber>2</skippedStepsNumber> + <pendingStepsNumber>3</pendingStepsNumber> + <undefinedStepsNumber>4</undefinedStepsNumber> + <failedScenariosNumber>5</failedScenariosNumber> + <failedFeaturesNumber>6</failedFeaturesNumber> + <buildStatus>UNSTABLE</buildStatus> + <trendsLimit>7</trendsLimit> + <sortingMethod>ALPHABETICAL</sortingMethod> + <classifications> + <net.masterthought.jenkins.CucumberReportPublisher_-Classification> + <key>classification key 1</key> + <value>classification value 1</value> + </net.masterthought.jenkins.CucumberReportPublisher_-Classification> + <net.masterthought.jenkins.CucumberReportPublisher_-Classification> + <key>classification key 2</key> + <value>classification value 2</value> + </net.masterthought.jenkins.CucumberReportPublisher_-Classification> + </classifications> </net.masterthought.jenkins.CucumberReportPublisher> </publishers> </project> diff --git a/tests/publishers/fixtures/cucumber-reports-full.yaml b/tests/publishers/fixtures/cucumber-reports-full.yaml index af315c4d..e0b1b797 100644 --- a/tests/publishers/fixtures/cucumber-reports-full.yaml +++ b/tests/publishers/fixtures/cucumber-reports-full.yaml @@ -11,3 +11,19 @@ publishers: no-flash-charts: true ignore-failed-tests: true parallel-testing: true + failed-steps-number: 1 + skipped-steps-number: 2 + pending-steps-number: 3 + undefined-steps-number: 4 + failed-scenarios-number: 5 + failed-features-number: 6 + build-status: UNSTABLE + trends-limit: 7 + sorting-method: ALPHABETICAL + sorting-values: + - key-value-pair: + key: classification key 1 + value: classification value 1 + - key-value-pair: + key: classification key 2 + value: classification value 2 diff --git a/tests/publishers/fixtures/cucumber-reports-minimal.xml b/tests/publishers/fixtures/cucumber-reports-minimal.xml index 7c411526..b6ee1732 100644 --- a/tests/publishers/fixtures/cucumber-reports-minimal.xml +++ b/tests/publishers/fixtures/cucumber-reports-minimal.xml @@ -13,6 +13,15 @@ <noFlashCharts>false</noFlashCharts> <ignoreFailedTests>false</ignoreFailedTests> <parallelTesting>false</parallelTesting> + <failedStepsNumber>0</failedStepsNumber> + <skippedStepsNumber>0</skippedStepsNumber> + <pendingStepsNumber>0</pendingStepsNumber> + <undefinedStepsNumber>0</undefinedStepsNumber> + <failedScenariosNumber>0</failedScenariosNumber> + <failedFeaturesNumber>0</failedFeaturesNumber> + <buildStatus/> + <trendsLimit>0</trendsLimit> + <sortingMethod>NATURAL</sortingMethod> </net.masterthought.jenkins.CucumberReportPublisher> </publishers> </project> diff --git a/tests/publishers/fixtures/ftp-full.xml b/tests/publishers/fixtures/ftp-full.xml index e36cad8b..5b8854c1 100644 --- a/tests/publishers/fixtures/ftp-full.xml +++ b/tests/publishers/fixtures/ftp-full.xml @@ -22,6 +22,10 @@ </transfers> <useWorkspaceInPromotion>false</useWorkspaceInPromotion> <usePromotionTimestamp>false</usePromotionTimestamp> + <retry class="jenkins.plugins.publish_over_ftp.BapFtpRetry"> + <retries>99</retries> + <retryDelay>12345</retryDelay> + </retry> </jenkins.plugins.publish__over__ftp.BapFtpPublisher> </publishers> <continueOnError>false</continueOnError> diff --git a/tests/publishers/fixtures/ftp-full.yaml b/tests/publishers/fixtures/ftp-full.yaml index bd6da185..46a126cd 100644 --- a/tests/publishers/fixtures/ftp-full.yaml +++ b/tests/publishers/fixtures/ftp-full.yaml @@ -10,3 +10,5 @@ publishers: fail-on-error: true flatten: true verbose: true + retries: 99 + retry-delay: 12345 diff --git a/tests/publishers/fixtures/ssh-full.xml b/tests/publishers/fixtures/ssh-full.xml index 5a526490..42b97bbd 100644 --- a/tests/publishers/fixtures/ssh-full.xml +++ b/tests/publishers/fixtures/ssh-full.xml @@ -24,6 +24,10 @@ </transfers> <useWorkspaceInPromotion>false</useWorkspaceInPromotion> <usePromotionTimestamp>false</usePromotionTimestamp> + <retry class="jenkins.plugins.publish_over_ssh.BapSshRetry"> + <retries>99</retries> + <retryDelay>12345</retryDelay> + </retry> </jenkins.plugins.publish__over__ssh.BapSshPublisher> </publishers> <continueOnError>false</continueOnError> diff --git a/tests/publishers/fixtures/ssh-full.yaml b/tests/publishers/fixtures/ssh-full.yaml index fe6e94a1..151a4924 100644 --- a/tests/publishers/fixtures/ssh-full.yaml +++ b/tests/publishers/fixtures/ssh-full.yaml @@ -14,3 +14,5 @@ publishers: always-publish-from-master: true flatten: true verbose: true + retries: 99 + retry-delay: 12345 |