diff options
50 files changed, 1407 insertions, 712 deletions
@@ -7,6 +7,12 @@ - jjb/jenkins-job-builder voting: true +- job: + name: jjb-tox-docs-linkcheck + parent: tox + vars: + tox_envlist: docs-linkcheck + - project: templates: - docs-on-readthedocs @@ -17,4 +23,5 @@ check: jobs: - jjb-tox-cross-python-jenkins + - jjb-tox-docs-linkcheck - tox-cover @@ -55,7 +55,7 @@ IRC: More details on how you can contribute is available on our wiki at: -* http://docs.openstack.org/infra/manual/developers.html +* https://docs.openstack.org/infra/manual/developers.html Writing a patch --------------- @@ -109,10 +109,10 @@ Then install the required python packages using pip_:: $ sudo pip install PyYAML python-jenkins .. _Jenkins: https://jenkins.io/ -.. _YAML: http://www.yaml.org/ +.. _YAML: https://yaml.org .. _JSON: http://json.org/ -.. _pep8: https://pypi.python.org/pypi/pep8 -.. _pyflakes: https://pypi.python.org/pypi/pyflakes -.. _tox: https://testrun.org/tox -.. _libyaml: http://pyyaml.org/wiki/LibYAML -.. _pip: https://pypi.python.org/pypi/pip +.. _pep8: https://pypi.org/project/pep8 +.. _pyflakes: https://pypi.org/project/pyflakes +.. _tox: https://tox.readthedocs.io/en/latest +.. _libyaml: https://pyyaml.org/wiki/LibYAML +.. _pip: https://pypi.org/project/pip diff --git a/doc/source/conf.py b/doc/source/conf.py index 57ae43fd..238de16f 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -276,3 +276,24 @@ extlinks = { "jenkins-wiki": ("https://wiki.jenkins.io/display/JENKINS/%s", None), "jenkins-plugins": ("https://plugins.jenkins.io/%s", None), } + +linkcheck_ignore = [ + r"https?:\/\/.*example\.org", + # gitorious is read-only archived with an expired certificate + "https://gitorious.org", +] +linkcheck_timeout = 300 + +nitpicky = True +nitpick_ignore = [ + ("py:class", "jenkins_jobs.modules.project_multijob.MultiJob"), + ("py:func", "jenkins_jobs.modules.builders.multijob"), + ("py:obj", "bool"), + ("py:obj", "dict"), + ("py:obj", "float"), + ("py:obj", "int"), + ("py:obj", "list"), + ("py:obj", "str"), + ("py:obj", "Element"), + ("py:obj", "YAMLParser"), +] diff --git a/doc/source/definition.rst b/doc/source/definition.rst index 029c9446..978d620b 100644 --- a/doc/source/definition.rst +++ b/doc/source/definition.rst @@ -577,7 +577,7 @@ and replace them with the empty string instead. Refer to :ref:`default-values` for details on setting variable defaults. -Variable Inheritence +Variable Inheritance ^^^^^^^^^^^^^^^^^^^^ It is possible in JJB to define defaults for variables at different levels such @@ -624,7 +624,7 @@ When a project wants to use a job-template it can use override it as follows: This is the standard way that most folks use and it will set ``branch: master`` for every job-template in the list. However sometimes we may want to provide an alternative value for a specific job in the list. In this case the more -specific declaration takes precendence: +specific declaration takes precedence: .. code-block:: yaml @@ -667,8 +667,8 @@ Which will be expanded to the following yaml before being processed: .. literalinclude:: /../../tests/localyaml/fixtures/anchors_aliases.oyaml -.. _full length example: http://www.yaml.org/spec/1.2/spec.html#id2761803 -.. _anchors and aliases: http://www.yaml.org/spec/1.2/spec.html#id2765878 +.. _full length example: https://yaml.org/spec/1.2/spec.html#id2761803 +.. _anchors and aliases: https://yaml.org/spec/1.2/spec.html#id2765878 Custom Yaml Tags diff --git a/doc/source/execution.rst b/doc/source/execution.rst index eb292e11..2304e88e 100644 --- a/doc/source/execution.rst +++ b/doc/source/execution.rst @@ -116,7 +116,7 @@ hipchat section can be used for any room your jobs might be configured to notify. For more information on this topic, please see the `Hipchat API Documentation`__ -__ https://www.hipchat.com/docs/apiv2/auth +__ https://developer.atlassian.com/server/hipchat/about-the-hipchat-rest-api/ stash section @@ -372,4 +372,4 @@ Command Reference can be overridden by setting the ``XDG_CACHE_HOME`` environment variable. .. [#f2] Jenkins Security Advisory affecting plugins info retrieval - https://wiki.jenkins-ci.org/display/SECURITY/Jenkins+Security+Advisory+2016-05-11 + https://wiki.jenkins.io/display/SECURITY/Jenkins+Security+Advisory+2016-05-11 diff --git a/doc/source/installation.rst b/doc/source/installation.rst index ddd4a5b6..fffc02a1 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -20,7 +20,7 @@ The OpenStack project uses Puppet to manage its infrastructure systems, including Jenkins. If you use Puppet, you can use the `OpenStack Jenkins module`__ to install Jenkins Job Builder. -__ https://git.openstack.org/cgit/openstack-infra/puppet-jenkins/tree/ +__ https://opendev.org/opendev/puppet-jenkins/src/branch/master Documentation ------------- diff --git a/doc/source/quick-start.rst b/doc/source/quick-start.rst index fc2697cb..1ee92153 100644 --- a/doc/source/quick-start.rst +++ b/doc/source/quick-start.rst @@ -12,9 +12,9 @@ job definitions we use to test JJB. Usage of the commands below assumes that you are at the root of the cloned directory. -.. _repository: http://git.openstack.org/cgit/openstack-infra/jenkins-job-builder/ -.. _pypi: https://pypi.python.org/pypi/jenkins-job-builder/ -.. _examples: http://git.openstack.org/cgit/openstack-infra/jenkins-job-builder/tree/tests +.. _repository: https://opendev.org/jjb/jenkins-job-builder/ +.. _pypi: https://pypi.org/project/jenkins-job-builder/ +.. _examples: https://opendev.org/jjb/jenkins-job-builder/src/branch/master/tests .. _use-case-1: diff --git a/doc/source/view_delivery_pipeline.rst b/doc/source/view_delivery_pipeline.rst new file mode 100644 index 00000000..76648fb4 --- /dev/null +++ b/doc/source/view_delivery_pipeline.rst @@ -0,0 +1,7 @@ +.. _view_delivery_pipeline: + +Delivery Pipeline View +====================== + +.. automodule:: view_delivery_pipeline + :members: diff --git a/jenkins_jobs/modules/base.py b/jenkins_jobs/modules/base.py index dca0c7f1..8dc2be72 100644 --- a/jenkins_jobs/modules/base.py +++ b/jenkins_jobs/modules/base.py @@ -57,7 +57,7 @@ class Base(object): loaded from JJB Yaml files without variables interpolation or other yaml expansions. - :rtype: boolean + :rtype: bool """ return False diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index b36707f5..248ad90d 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -93,8 +93,8 @@ def shell(registry, xml_parent, data): def python(registry, xml_parent, data): """yaml: python - Execute a python command. Requires the Jenkins :jenkins-wiki:`Python plugin - <Python+Plugin>`. + Execute a python command. Requires the Jenkins :jenkins-plugins:`Python plugin + <python>`. :arg str parameter: the python command to execute @@ -111,11 +111,11 @@ def python(registry, xml_parent, data): def copyartifact(registry, xml_parent, data): """yaml: copyartifact - Copy artifact from another project. Requires the :jenkins-wiki:`Copy - Artifact plugin <Copy+Artifact+Plugin>`. + Copy artifact from another project. Requires the :jenkins-plugins:`Copy + Artifact plugin <copyartifact>`. Please note using the multijob-build for which-build argument requires - the :jenkins-wiki:`Multijob plugin <Multijob+Plugin>` + the :jenkins-plugins:`Multijob plugin <jenkins-multijob-plugin>` :arg str project: Project to copy from :arg str filter: what files to copy @@ -158,18 +158,18 @@ def copyartifact(registry, xml_parent, data): last-successful is specified as which-build :arg bool fallback-to-last-successful: specifies to fallback to last successful build when upstream-build is specified as which-build - :arg string param: specifies to use a build parameter to get the build when + :arg str param: specifies to use a build parameter to get the build when build-param is specified as which-build :arg str upstream-project-name: specifies the project name of downstream when downstream-build is specified as which-build :arg str upstream-build-number: specifies the number of the build to find its downstream build when downstream-build is specified as which-build - :arg string parameter-filters: Filter matching jobs based on these + :arg str parameter-filters: Filter matching jobs based on these parameters (optional) - :arg string exclude: Specify paths or patterns of artifacts to + :arg str exclude: Specify paths or patterns of artifacts to exclude, even if specified in "Artifacts to copy". (default '') - :arg string result-var-suffix: The build number of the selected build + :arg str result-var-suffix: The build number of the selected build will be recorded into the variable named COPYARTIFACT_BUILD_NUMBER_(SUFFIX) for later build steps to reference. (default '') @@ -206,8 +206,8 @@ def copyartifact(registry, xml_parent, data): def change_assembly_version(registry, xml_parent, data): """yaml: change-assembly-version Change the assembly version. - Requires the Jenkins :jenkins-wiki:`Change Assembly Version - <Change+Assembly+Version>`. + Requires the Jenkins :jenkins-plugins:`Change Assembly Version + <change-assembly-version-plugin>`. :arg str version: Set the new version number for replace (default 1.0.0) :arg str assemblyFile: The file name to search (default AssemblyInfo.cs) @@ -239,8 +239,10 @@ def change_assembly_version(registry, xml_parent, data): def fingerprint(registry, xml_parent, data): """yaml: fingerprint Adds the ability to generate fingerprints as build steps instead of waiting - for a build to complete. Requires the Jenkins :jenkins-wiki:`Fingerprint - Plugin <Fingerprint+Plugin>`. + for a build to complete. + + Requires the Jenkins :jenkins-plugins:`Fingerprint Plugin + <create-fingerprint>`. :arg str targets: Files to fingerprint (default '') @@ -268,8 +270,8 @@ def fingerprint(registry, xml_parent, data): def ant(registry, xml_parent, data): """yaml: ant - Execute an ant target. Requires the Jenkins :jenkins-wiki:`Ant Plugin - <Ant+Plugin>`. + Execute an ant target. Requires the Jenkins :jenkins-plugins:`Ant Plugin + <ant>`. To setup this builder you can either reference the list of targets or use named parameters. Below is a description of both forms: @@ -337,8 +339,8 @@ def trigger_remote(registry, xml_parent, data): """yaml: trigger-remote Trigger build of job on remote Jenkins instance. - :jenkins-wiki:`Parameterized Remote Trigger Plugin - <Parameterized+Remote+Trigger+Plugin>` + Requires the Jenkins :jenkins-plugins:`Parameterized Remote Trigger Plugin + <Parameterized-Remote-Trigger>` Please note that this plugin requires system configuration on the Jenkins Master that is unavailable from individual job views; specifically, one @@ -420,8 +422,9 @@ def trigger_remote(registry, xml_parent, data): def trigger_builds(registry, xml_parent, data): """yaml: trigger-builds Trigger builds of other jobs. - Requires the Jenkins :jenkins-wiki:`Parameterized Trigger Plugin - <Parameterized+Trigger+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Parameterized Trigger Plugin + <parameterized-trigger>`. :arg list project: the Jenkins project to trigger :arg str predefined-parameters: key/value pairs to be passed to the job @@ -798,8 +801,9 @@ def trigger_builds(registry, xml_parent, data): def builders_from(registry, xml_parent, data): """yaml: builders-from Use builders from another project. - Requires the Jenkins :jenkins-wiki:`Template Project Plugin - <Template+Project+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Template Project Plugin + <template-project>`. :arg str projectName: the name of the other project @@ -816,8 +820,9 @@ def builders_from(registry, xml_parent, data): def http_request(registry, xml_parent, data): """yaml: http-request This plugin sends a http request to an url with some parameters. - Requires the Jenkins :jenkins-wiki:`HTTP Request Plugin - <HTTP+Request+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`HTTP Request Plugin + <http_request>`. :arg str url: Specify an URL to be requested (required) :arg str mode: The http mode of the request (default GET) @@ -921,8 +926,8 @@ def http_request(registry, xml_parent, data): def inject(registry, xml_parent, data): """yaml: inject Inject an environment for the job. - Requires the Jenkins :jenkins-wiki:`EnvInject Plugin - <EnvInject+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`EnvInject Plugin <envinject>`. :arg str properties-file: the name of the property file (optional) :arg str properties-content: the properties content (optional) @@ -948,15 +953,16 @@ def inject(registry, xml_parent, data): def kmap(registry, xml_parent, data): """yaml: kmap Publish mobile applications to your Keivox KMAP Private Mobile App Store. - Requires the Jenkins :jenkins-wiki:`Keivox KMAP Private Mobile App Store - Plugin <Keivox+KMAP+Private+Mobile+App+Store+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Keivox KMAP Private Mobile App Store + Plugin <kmap-jenkins>`. :arg str username: KMAP's user email with permissions to upload/publish applications to KMAP (required) :arg str password: Password for the KMAP user uploading/publishing applications (required) :arg str url: KMAP's url. This url must always end with "/kmap-client/". - For example: http://testing.keivox.com/kmap-client/ (required) + For example: http://testing.example.org/kmap-client/ (required) :arg str categories: Categories' names. If you want to add the application to more than one category, write the categories between commas. (required) @@ -1022,8 +1028,9 @@ def artifact_resolver(registry, xml_parent, data): """yaml: artifact-resolver Allows one to resolve artifacts from a maven repository like nexus (without having maven installed) - Requires the Jenkins :jenkins-wiki:`Repository Connector Plugin - <Repository+Connector+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Repository Connector Plugin + <repository-connector>`. :arg bool fail-on-error: Whether to fail the build on error (default false) :arg bool repository-logging: Enable repository logging (default false) @@ -1087,8 +1094,9 @@ def artifact_resolver(registry, xml_parent, data): def doxygen(registry, xml_parent, data): """yaml: doxygen - Builds doxygen HTML documentation. Requires the Jenkins - :jenkins-wiki:`Doxygen plugin <Doxygen+Plugin>`. + Builds doxygen HTML documentation. + + Requires the Jenkins :jenkins-plugins:`Doxygen plugin <doxygen>`. :arg str doxyfile: The doxyfile path (required) :arg str install: The doxygen installation to use (required) @@ -1115,8 +1123,9 @@ def doxygen(registry, xml_parent, data): def gradle(registry, xml_parent, data): """yaml: gradle - Execute gradle tasks. Requires the Jenkins :jenkins-wiki:`Gradle Plugin - <Gradle+Plugin>`. + Execute gradle tasks. + + Requires the Jenkins :jenkins-plugins:`Gradle Plugin <gradle>`. :arg str tasks: List of tasks to execute :arg str gradle-name: Use a custom gradle name (default '') @@ -1180,7 +1189,8 @@ def _groovy_common_scriptSource(data): def groovy(registry, xml_parent, data): """yaml: groovy Execute a groovy script or command. - Requires the Jenkins :jenkins-wiki:`Groovy Plugin <Groovy+plugin>`. + + Requires the Jenkins :jenkins-plugins:`Groovy Plugin <groovy>`. :arg str file: Groovy file to run. (Alternative: you can chose a command instead) @@ -1229,7 +1239,8 @@ def groovy(registry, xml_parent, data): def system_groovy(registry, xml_parent, data): """yaml: system-groovy Execute a system groovy script or command. - Requires the Jenkins :jenkins-wiki:`Groovy Plugin <Groovy+plugin>`. + + Requires the Jenkins :jenkins-plugins:`Groovy Plugin <groovy>`. :arg str file: Groovy file to run. (Alternative: you can chose a command instead) @@ -1274,8 +1285,9 @@ def batch(registry, xml_parent, data): def powershell(registry, xml_parent, data): """yaml: powershell - Execute a powershell command. Requires the :jenkins-wiki:`Powershell Plugin - <PowerShell+Plugin>`. + Execute a powershell command. + + Requires the :jenkins-plugins:`Powershell Plugin <powershell>`. :Parameter: the powershell command to execute @@ -1290,8 +1302,9 @@ def powershell(registry, xml_parent, data): def msbuild(registry, xml_parent, data): """yaml: msbuild - Build .NET project using msbuild. Requires the :jenkins-wiki:`Jenkins - MSBuild Plugin <MSBuild+Plugin>`. + Build .NET project using msbuild. + + Requires the Jenkins :jenkins-plugins:'MSBuild Plugin <msbuild>`. :arg str msbuild-version: which msbuild configured in Jenkins to use (default '(Default)') @@ -1336,9 +1349,10 @@ def create_builders(registry, step): def conditional_step(registry, xml_parent, data): """yaml: conditional-step - Conditionally execute some build steps. Requires the Jenkins - :jenkins-wiki:`Conditional BuildStep Plugin - <Conditional+BuildStep+Plugin>`. + Conditionally execute some build steps. + + Requires the Jenkins :jenkins-plugins:`Conditional BuildStep Plugin + <conditional-buildstep>`. Depending on the number of declared steps, a `Conditional step (single)` or a `Conditional steps (multiple)` is created in Jenkins. @@ -1803,8 +1817,8 @@ def maven_builder(registry, xml_parent, data): Allows your build jobs to deploy artifacts automatically to Artifactory. - Requires the Jenkins :jenkins-wiki:`Artifactory Plugin - <Artifactory+Plugin>`. + Requires the Jenkins `Artifactory Plugin + <https://www.jfrog.com/confluence/display/RTF/Jenkins+Artifactory+Plug-in>`_. :arg str name: Name of maven installation from the configuration (required) :arg str pom: Location of pom.xml (default 'pom.xml') @@ -1831,8 +1845,8 @@ def jira_issue_updater(registry, xml_parent, data): """yaml: jenkins-jira-issue-updater Updates issues in Atlassian JIRA as part of a Jenkins job. - Requires the Jenkins :jenkins-wiki:`Jira Issue Updater Plugin - <Jira+Issue+Updater+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Jira Issue Updater Plugin + <jenkins-jira-issue-updater>`. :arg str base-url: The base url of the rest API. (default '') :arg str username: The Jira username (required) @@ -1887,8 +1901,8 @@ def maven_target(registry, xml_parent, data): """yaml: maven-target Execute top-level Maven targets. - Requires the Jenkins :jenkins-wiki:`Config File Provider Plugin - <Config+File+Provider+Plugin>` for the Config File Provider "settings" + Requires the Jenkins :jenkins-plugins:`Config File Provider Plugin + <config-file-provider>` for the Config File Provider "settings" and "global-settings" config. :arg str goals: Goals to execute @@ -1939,8 +1953,10 @@ def maven_target(registry, xml_parent, data): def multijob(registry, xml_parent, data): """yaml: multijob - Define a multijob phase. Requires the Jenkins - :jenkins-wiki:`Multijob Plugin <Multijob+Plugin>`. + Define a multijob phase. + + Requires the Jenkins :jenkins-plugins:`Multijob Plugin + <jenkins-multijob-plugin>`. This builder may only be used in :py:class:`jenkins_jobs.modules.project_multijob.MultiJob` projects. @@ -2139,8 +2155,9 @@ def config_file_provider(registry, 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>`. + + Requires the Jenkins :jenkins-plugins:`Config File Provider Plugin + <config-file-provider>`. :arg list files: List of managed config files made up of three parameters @@ -2177,8 +2194,9 @@ def config_file_provider(registry, xml_parent, data): def grails(registry, xml_parent, data): """yaml: grails - Execute a grails build step. Requires the :jenkins-wiki:`Jenkins Grails - Plugin <Grails+Plugin>`. + Execute a grails build step. + + Requires the :jenkins-wiki:`Jenkins Grails Plugin <Grails+Plugin>`. :arg bool use-wrapper: Use a grails wrapper (default false) :arg str name: Select a grails installation to use (default '(Default)') @@ -2239,8 +2257,9 @@ def grails(registry, xml_parent, data): def sbt(registry, xml_parent, data): """yaml: sbt - Execute a sbt build step. Requires the Jenkins :jenkins-wiki:`Sbt Plugin - <sbt+plugin>`. + Execute a sbt build step. + + Requires the Jenkins :jenkins-plugins:`Sbt Plugin <sbt>`. :arg str name: Select a sbt installation to use. If no name is provided, the first in the list of defined SBT builders will be @@ -2276,7 +2295,7 @@ def critical_block_start(registry, xml_parent, data): Must also add a build wrapper (exclusion), specifying the resources that control the critical block. Otherwise, this will have no effect. - Requires Jenkins :jenkins-wiki:`Exclusion Plugin <Exclusion-Plugin>`. + Requires the Jenkins :jenkins-plugins:`Exclusion Plugin <Exclusion>`. Example: @@ -2298,7 +2317,7 @@ def critical_block_end(registry, xml_parent, data): Must also add a build wrapper (exclusion), specifying the resources that control the critical block. Otherwise, this will have no effect. - Requires Jenkins :jenkins-wiki:`Exclusion Plugin <Exclusion-Plugin>`. + Requires the Jenkins :jenkins-plugins:`Exclusion Plugin <Exclusion>`. Example: @@ -2315,8 +2334,9 @@ def critical_block_end(registry, xml_parent, data): def publish_over_ssh(registry, xml_parent, data): """yaml: publish-over-ssh Send files or execute commands over SSH. - Requires the Jenkins :jenkins-wiki:`Publish over SSH Plugin - <Publish+Over+SSH+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Publish over SSH Plugin + <publish-over-ssh>`. :arg str site: name of the ssh site :arg str target: destination directory @@ -2344,8 +2364,9 @@ def publish_over_ssh(registry, xml_parent, data): def publish_over_cifs(registry, xml_parent, data): """yaml: publish-over-cifs Upload files via CIFS. - Requires the Jenkins :jenkins-wiki:`Publish over CIFS Plugin - <Publish+Over+CIFS+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Publish over CIFS Plugin + <publish-over-cifs>`. :arg str site: name of the ssh site :arg str target: destination directory @@ -2372,8 +2393,9 @@ def publish_over_cifs(registry, xml_parent, data): def saltstack(parser, xml_parent, data): """yaml: saltstack - Send a message to Salt API. Requires the :jenkins-wiki:`saltstack plugin - <saltstack-plugin>`. + Send a message to Salt API. + + Requires the Jenkins :jenkins-plugins:`saltstack plugin <saltstack>`. :arg str servername: Salt master server name (required) :arg str authtype: Authentication type ('pam' or 'ldap', default 'pam') @@ -2545,8 +2567,10 @@ class Builders(jenkins_jobs.modules.base.Base): def shining_panda(registry, xml_parent, data): """yaml: shining-panda - Execute a command inside various python environments. Requires the Jenkins - :jenkins-wiki:`ShiningPanda plugin <ShiningPanda+Plugin>`. + Execute a command inside various python environments. + + Requires the Jenkins :jenkins-plugins:`ShiningPanda plugin + <shiningpanda>`. :arg str build-environment: Building environment to set up (required). @@ -2656,8 +2680,10 @@ def shining_panda(registry, xml_parent, data): def tox(registry, xml_parent, data): """yaml: tox - Use tox to build a multi-configuration project. Requires the Jenkins - :jenkins-wiki:`ShiningPanda plugin <ShiningPanda+Plugin>`. + Use tox to build a multi-configuration project. + + Requires the Jenkins :jenkins-plugins:`ShiningPanda plugin + <shiningpanda>`. :arg str ini: The TOX configuration file path (default tox.ini) :arg bool recreate: If true, create a new environment each time (default @@ -2682,8 +2708,10 @@ def tox(registry, xml_parent, data): def managed_script(registry, xml_parent, data): """yaml: managed-script This step allows you to reference and execute a centrally managed - script within your build. Requires the Jenkins - :jenkins-wiki:`Managed Script Plugin <Managed+Script+Plugin>`. + script within your build. + + Requires the Jenkins :jenkins-plugins:`Managed Scripts Plugin + <managed-scripts>`. :arg str script-id: Id of script to execute (required) :arg str type: Type of managed file (default script) @@ -2721,8 +2749,9 @@ def managed_script(registry, xml_parent, data): def cmake(registry, xml_parent, data): """yaml: cmake - Execute a CMake target. Requires the Jenkins :jenkins-wiki:`CMake Plugin - <CMake+Plugin>`. + Execute a CMake target. + + Requires the Jenkins :jenkins-plugins:`CMake Plugin <cmakebuilder>`. This builder is compatible with both versions 2.x and 1.x of the plugin. When specifying paramenters from both versions only the ones from @@ -2905,7 +2934,7 @@ def dsl(registry, xml_parent, data): r"""yaml: dsl Process Job DSL - Requires the Jenkins :jenkins-wiki:`Job DSL plugin <Job+DSL+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Job DSL plugin <job-dsl>`. :arg str script-text: dsl script which is Groovy code (Required if targets is not specified) @@ -2995,7 +3024,8 @@ def dsl(registry, xml_parent, data): def github_notifier(registry, xml_parent, data): """yaml: github-notifier Set pending build status on Github commit. - Requires the Jenkins :jenkins-wiki:`Github Plugin <GitHub+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Github Plugin <github>`. Example: @@ -3013,8 +3043,8 @@ def scan_build(registry, xml_parent, data): The scan-build report has to be generated in the directory ``${WORKSPACE}/clangScanBuildReports`` for the publisher to find it. - Requires the Jenkins :jenkins-wiki:`Clang Scan-Build Plugin - <Clang+Scan-Build+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Clang Scan-Build Plugin + <clang-scanbuild>`. :arg str target: Provide the exact name of the XCode target you wish to have compiled and analyzed (required) @@ -3069,7 +3099,8 @@ def scan_build(registry, xml_parent, data): def ssh_builder(registry, xml_parent, data): """yaml: ssh-builder Executes command on remote host - Requires the Jenkins :jenkins-wiki:`SSH plugin <SSH+plugin>`. + + Requires the Jenkins :jenkins-plugins:`SSH plugin <ssh>`. :arg str ssh-user-ip: user@ip:ssh_port of machine that was defined in jenkins according to SSH plugin instructions @@ -3089,11 +3120,9 @@ def ssh_builder(registry, xml_parent, data): def sonar(registry, xml_parent, data): """yaml: sonar Invoke standalone Sonar analysis. - Requires the Jenkins `Sonar Plugin. - <http://docs.sonarqube.org/display/SCAN/\ - Analyzing+with+SonarQube+Scanner+for+Jenkins\ - #AnalyzingwithSonarQubeScannerforJenkins-\ - AnalyzingwiththeSonarQubeScanner>`_ + + Requires the Jenkins `Sonar Plugin + <https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins>`_. :arg str sonar-name: Name of the Sonar installation. :arg str sonar-scanner: Name of the Sonar Scanner. @@ -3128,8 +3157,9 @@ def sonar(registry, xml_parent, data): def xcode(registry, xml_parent, data): """yaml: xcode - This step allows you to execute an xcode build step. Requires the Jenkins - :jenkins-wiki:`Xcode Plugin <Xcode+Plugin>`. + This step allows you to execute an xcode build step. + + Requires the Jenkins :jenkins-plugins:`Xcode Plugin <xcode-plugin>`. :arg str developer-profile: the jenkins credential id for a ios developer profile. (optional) @@ -3352,8 +3382,10 @@ def sonatype_clm(registry, xml_parent, data): def beaker(registry, xml_parent, data): """yaml: beaker - Execute a beaker build step. Requires the Jenkins :jenkins-wiki:`Beaker - Builder Plugin <Beaker+Builder+Plugin>`. + Execute a beaker build step. + + Requires the Jenkins :jenkins-plugins:`Beaker Builder Plugin + <beaker-builder>`. :arg str content: Run job from string (Alternative: you can choose a path instead) @@ -3394,8 +3426,10 @@ def beaker(registry, xml_parent, data): def cloudformation(registry, xml_parent, data): """yaml: cloudformation Create cloudformation stacks before running a build and optionally - delete them at the end. Requires the Jenkins :jenkins-wiki:`AWS - Cloudformation Plugin <AWS+Cloudformation+Plugin>`. + delete them at the end. + + Requires the Jenkins :jenkins-plugins:`AWS Cloudformation Plugin + <jenkins-cloudformation-plugin>`. :arg list name: The names of the stacks to create (required) :arg str description: Description of the stack (optional) @@ -3409,7 +3443,7 @@ def cloudformation(registry, xml_parent, data): :arg str secret-key: The Amazon API Secret Key (required) :arg int sleep: Number of seconds to wait before continuing to the next step (default 0) - :arg array region: The region to run cloudformation in (required) + :arg str region: The region to run cloudformation in (required) :region values: * **us-east-1** @@ -3450,8 +3484,8 @@ def jms_messaging(registry, xml_parent, data): - ActiveMQ - FedMsg - Requires the Jenkins :jenkins-wiki:`JMS Messaging Plugin - Pipeline Plugin <JMS+Messaging+Plugin>`. + Requires the Jenkins :jenkins-plugins:`JMS Messaging Plugin Pipeline Plugin + <jms-messaging>`. :arg str override-topic: If you need to override the default topic. (default '') @@ -3486,8 +3520,9 @@ def openshift_build_verify(registry, xml_parent, data): provided buildConfig key provided; once the list of builds are obtained, the state of the latest build is inspected for up to a minute to see if it has completed successfully. - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -3532,8 +3567,9 @@ def openshift_build_verify(registry, xml_parent, data): def openshift_builder(registry, xml_parent, data): r"""yaml: openshift-builder Perform builds in OpenShift for the job. - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -3591,8 +3627,9 @@ def openshift_creator(registry, xml_parent, data): this build step takes in the provided JSON or YAML text, and if it conforms to OpenShift schema, creates whichever OpenShift resources are specified. - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -3638,8 +3675,9 @@ def openshift_dep_verify(registry, xml_parent, data): Determines whether the expected set of DeploymentConfig's, ReplicationController's, and active replicas are present based on prior use of the scaler (2) and deployer (3) steps - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`._ + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -3688,8 +3726,9 @@ def openshift_dep_verify(registry, xml_parent, data): def openshift_deployer(registry, xml_parent, data): r"""yaml: openshift-deployer Start a deployment in OpenShift for the job. - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -3735,8 +3774,9 @@ def openshift_img_tagger(registry, xml_parent, data): r"""yaml: openshift-img-tagger Performs the equivalent of an oc tag command invocation in order to manipulate tags for images in OpenShift ImageStream's - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -3785,8 +3825,9 @@ def openshift_img_tagger(registry, xml_parent, data): def openshift_scaler(registry, xml_parent, data): r"""yaml: openshift-scaler Scale deployments in OpenShift for the job. - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -3832,8 +3873,9 @@ def openshift_scaler(registry, xml_parent, data): def openshift_svc_verify(registry, xml_parent, data): r"""yaml: openshift-svc-verify Verify a service is up in OpenShift for the job. - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -3877,7 +3919,8 @@ def openshift_svc_verify(registry, xml_parent, data): def runscope(registry, xml_parent, data): """yaml: runscope Execute a Runscope test. - Requires the Jenkins :jenkins-wiki:`Runscope Plugin <Runscope+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Runscope Plugin <runscope>`. :arg str test-trigger-url: Trigger URL for test. (required) :arg str access-token: OAuth Personal Access token. (required) @@ -3911,8 +3954,8 @@ def description_setter(registry, xml_parent, data): This plugin sets the description for each build, based upon a RegEx test of the build log file. - Requires the Jenkins :jenkins-wiki:`Description Setter Plugin - <Description+Setter+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Description Setter Plugin + <description-setter>`. :arg str regexp: A RegEx which is used to scan the build log file (default '') @@ -3936,8 +3979,11 @@ def description_setter(registry, xml_parent, data): 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>`. + Provides the ability to build projects with a Dockerfile and publish the + resultant tagged image (repo) to the docker registry. + + Requires the Jenkins :jenkins-plugins:`CloudBees Docker Build and Publish + plugin <docker-build-publish>`. :arg str docker-registry-url: URL to the Docker registry you are using (default '') @@ -3994,8 +4040,11 @@ def build_publish_docker_image(registry, xml_parent, data): def docker_build_publish(parse, xml_parent, data): """yaml: docker-build-publish - Requires the Jenkins :jenkins-wiki:`Docker build publish Plugin - <Docker+build+publish+Plugin>`. + Provides the ability to build projects with a Dockerfile, and publish the + resultant tagged image (repo) to the docker registry. + + Requires the Jenkins :jenkins-plugins:`Docker build publish Plugin + <docker-build-publish>`. :arg str repo-name: Name of repository to push to. :arg str repo-tag: Tag for image. (default '') @@ -4085,8 +4134,9 @@ def docker_pull_image(registry, xml_parent, data): """yaml: docker-pull-image Provides integration between Jenkins and Docker Hub, utilizing a Docker Hub hook to trigger one (or more) Jenkins job(s). - Requires the Jenkins :jenkins-wiki:`CloudBees Docker Hub Notification - <CloudBees+Docker+Hub+Notification>`. + + Requires the Jenkins :jenkins-plugins:`CloudBees Docker Hub Notification + <dockerhub-notification>`. :arg str image: Image ID on DockerHub (default '') :arg str docker-registry-url: URL to the Docker registry @@ -4127,8 +4177,9 @@ def build_name_setter(registry, xml_parent, data): """yaml: build-name-setter Define Build Name Setter options which allows your build name to be updated during the build process. - Requires the Jenkins :jenkins-wiki:`Build Name Setter Plugin - <Build+Name+Setter+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Build Name Setter Plugin + <build-name-setter>`. :arg str name: Filename to use for Build Name Setter, only used if file bool is true. (default 'version.txt') @@ -4166,8 +4217,10 @@ def build_name_setter(registry, xml_parent, data): def nexus_artifact_uploader(registry, xml_parent, data): """yaml: nexus-artifact-uploader To upload result of a build as an artifact in Nexus without the need of - Maven. Requires the Jenkins :nexus-artifact-uploader: - `Nexus Artifact Uploader Plugin <Nexus+Artifact+Uploader>`. + Maven. + + Requires the Jenkins :jenkins-plugins:`Nexus Artifact Uploader Plugin + <nexus-artifact-uploader>`. :arg str protocol: Protocol to use to connect to Nexus (default https) :arg str nexus_url: Nexus url (without protocol) (default '') @@ -4224,8 +4277,9 @@ def nexus_iq_policy_evaluator(registry, xml_parent, data): """yaml: nexus-iq-policy-evaluator Integrates the Nexus Lifecycle into a Jenkins job. This function triggers 'Invokes Nexus Policy Evaluation'. - Requires the Jenkins :jenkins-wiki:`Nexus - Platform Plugin <Nexus+Platform+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Nexus Platform Plugin + <nexus-jenkins-plugin>`. :arg str stage: Controls the stage the policy evaluation will be run against on the Nexus IQ Server (required) @@ -4319,8 +4373,9 @@ def nexus_repo_manager(registry, xml_parent, data): """yaml: nexus-repo-manager Allows for artifacts selected in Jenkins packages to be available in Nexus Repository Manager. - Requires the Jenkins :jenkins-wiki:`Nexus - Platform Plugin <Nexus+Platform+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Nexus Platform Plugin + <nexus-jenkins-plugin>`. :arg str instance-id: The ID of the Nexus Instance (required) :arg str repo-id: The ID of the Nexus Repository (required) @@ -4346,7 +4401,8 @@ def nexus_repo_manager(registry, xml_parent, data): def ansible_playbook(parser, xml_parent, data): """yaml: ansible-playbook This plugin allows you to execute Ansible tasks as a job build step. - Requires the Jenkins :jenkins-wiki:`Ansible Plugin <Ansible+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Ansible Plugin <ansible>`. :arg str playbook: Path to the ansible playbook file. The path can be absolute or relative to the job workspace. (required) @@ -4509,7 +4565,8 @@ def ansible_playbook(parser, xml_parent, data): def nodejs(parser, xml_parent, data): """yaml: nodejs This plugin allows you to execute NodeJS scripts as a job build step. - Requires the Jenkins :jenkins-wiki:`NodeJS Plugin <NodeJS+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`NodeJS Plugin <nodejs>`. :arg str name: NodeJS installation name :arg str script: NodeJS script (required) @@ -4545,8 +4602,9 @@ def nodejs(parser, xml_parent, data): def xunit(registry, xml_parent, data): """yaml: xunit - Process tests results. Requires the Jenkins :jenkins-wiki:`xUnit Plugin - <xUnit+Plugin>`. + Process tests results. + + Requires the Jenkins :jenkins-plugins:`xUnit Plugin <xunit>`. :arg str thresholdmode: Whether thresholds represents an absolute number of tests or a percentage. Either 'number' or 'percent'. (default diff --git a/jenkins_jobs/modules/general.py b/jenkins_jobs/modules/general.py index 02b1647b..0e2bea24 100644 --- a/jenkins_jobs/modules/general.py +++ b/jenkins_jobs/modules/general.py @@ -59,8 +59,9 @@ Example: * **folder**: The folder attribute provides an alternative to using '<path>/<name>' as the job name to specify which Jenkins folder to upload the job to. - Requires the `CloudBees Folders Plugin. - <https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Folders+Plugin>`_ + + Requires the Jenkins :jenkins-plugins:`CloudBees Folders Plugin + <cloudbees-folder>`. * **child-workspace**: Path for a child custom workspace. Defaults to Jenkins default diff --git a/jenkins_jobs/modules/metadata.py b/jenkins_jobs/modules/metadata.py index eb28ccd6..4c1fa2a2 100644 --- a/jenkins_jobs/modules/metadata.py +++ b/jenkins_jobs/modules/metadata.py @@ -16,7 +16,8 @@ """ The Metadata plugin module enables the ability to add metadata to the projects that can be exposed to job environment. -Requires the Jenkins :jenkins-wiki:`Metadata Plugin <Metadata+plugin>`. + +Requires the Jenkins :jenkins-plugins:`Metadata Plugin <metadata>`. **Component**: metadata :Macro: metadata diff --git a/jenkins_jobs/modules/notifications.py b/jenkins_jobs/modules/notifications.py index f1f9407e..b9c7840e 100644 --- a/jenkins_jobs/modules/notifications.py +++ b/jenkins_jobs/modules/notifications.py @@ -33,8 +33,9 @@ import jenkins_jobs.modules.helpers as helpers def http_endpoint(registry, xml_parent, data): """yaml: http Defines an HTTP notification endpoint. - Requires the Jenkins :jenkins-wiki:`Notification Plugin - <Notification+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Notification Plugin + <notification>`. :arg str format: notification payload format, JSON (default) or XML :arg str event: job events that trigger notifications: started, diff --git a/jenkins_jobs/modules/parameters.py b/jenkins_jobs/modules/parameters.py index 763c0e24..fca02e1c 100644 --- a/jenkins_jobs/modules/parameters.py +++ b/jenkins_jobs/modules/parameters.py @@ -78,8 +78,9 @@ def string_param(registry, xml_parent, data): def promoted_param(registry, xml_parent, data): """yaml: promoted build A promoted build parameter. - Requires the Jenkins :jenkins-wiki:`Promoted Builds Plugin - <Promoted+Builds+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Promoted Builds Plugin + <promoted-builds>`. :arg str name: the name of the parameter (required) :arg str project-name: the job from which the user can pick runs (required) @@ -338,9 +339,9 @@ def choice_param(registry, xml_parent, data): def credentials_param(registry, xml_parent, data): """yaml: credentials - A credentials selection parameter. Requires the Jenkins - :jenkins-wiki:`Credentials Plugin - <Credentials+Plugin>`. + A credentials selection parameter. + + Requires the Jenkins :jenkins-plugins:`Credentials Plugin <credentials>`. :arg str name: the name of the parameter :arg str type: credential type (optional, default 'any') @@ -354,7 +355,7 @@ def credentials_param(registry, xml_parent, data): :arg bool required: whether this parameter is required (optional, default false) - :arg string default: default credentials ID (optional) + :arg str default: default credentials ID (optional) :arg str description: a description of the parameter (optional) Example: @@ -418,8 +419,9 @@ def run_param(registry, xml_parent, data): def extended_choice_param(registry, xml_parent, data): """yaml: extended-choice Creates an extended choice parameter where values can be read from a file - Requires the Jenkins :jenkins-wiki:`Extended Choice Parameter Plugin - <Extended+Choice+Parameter+plugin>`. + + Requires the Jenkins :jenkins-plugins:`Extended Choice Parameter Plugin + <extended-choice-parameter>`. :arg str name: name of the parameter :arg str description: description of the parameter @@ -529,8 +531,9 @@ def extended_choice_param(registry, xml_parent, data): def validating_string_param(registry, xml_parent, data): """yaml: validating-string A validating string parameter - Requires the Jenkins :jenkins-wiki:`Validating String Plugin - <Validating+String+Parameter+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Validating String Plugin + <validating-string-parameter>`. :arg str name: the name of the parameter :arg str default: the default value of the parameter (optional) @@ -563,8 +566,9 @@ def validating_string_param(registry, xml_parent, data): def svn_tags_param(registry, xml_parent, data): """yaml: svn-tags A svn tag parameter - Requires the Jenkins :jenkins-wiki:`Parameterized Trigger Plugin - <Parameterized+Trigger+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Parameterized Trigger Plugin + <parameterized-trigger>`. :arg str name: the name of the parameter :arg str url: the url to list tags from @@ -585,7 +589,7 @@ def svn_tags_param(registry, xml_parent, data): name: BRANCH_NAME default: release description: A parameter named BRANCH_NAME default is release - url: http://svn.example.com/repo + url: http://svn.example.org/repo filter: [A-za-z0-9]* """ pdef = base_param( @@ -610,6 +614,7 @@ def svn_tags_param(registry, xml_parent, data): def dynamic_choice_param(registry, xml_parent, data): """yaml: dynamic-choice Dynamic Choice Parameter + Requires the Jenkins :jenkins-wiki:`Jenkins Dynamic Parameter Plug-in <Dynamic+Parameter+Plug-in>`. @@ -638,6 +643,7 @@ def dynamic_choice_param(registry, xml_parent, data): def dynamic_string_param(registry, xml_parent, data): """yaml: dynamic-string Dynamic Parameter + Requires the Jenkins :jenkins-wiki:`Jenkins Dynamic Parameter Plug-in <Dynamic+Parameter+Plug-in>`. @@ -666,6 +672,7 @@ def dynamic_string_param(registry, xml_parent, data): def dynamic_choice_scriptler_param(registry, xml_parent, data): """yaml: dynamic-choice-scriptler Dynamic Choice Parameter (Scriptler) + Requires the Jenkins :jenkins-wiki:`Jenkins Dynamic Parameter Plug-in <Dynamic+Parameter+Plug-in>`. @@ -704,6 +711,7 @@ def dynamic_choice_scriptler_param(registry, xml_parent, data): def dynamic_string_scriptler_param(registry, xml_parent, data): """yaml: dynamic-string-scriptler Dynamic Parameter (Scriptler) + Requires the Jenkins :jenkins-wiki:`Jenkins Dynamic Parameter Plug-in <Dynamic+Parameter+Plug-in>`. @@ -799,8 +807,9 @@ def dynamic_scriptler_param_common(registry, xml_parent, data, ptype): def matrix_combinations_param(registry, xml_parent, data): """yaml: matrix-combinations Matrix combinations parameter - Requires the Jenkins :jenkins-wiki:`Matrix Combinations Plugin - <Matrix+Combinations+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Matrix Combinations Plugin + <matrix-combinations-parameter>`. :arg str name: the name of the parameter :arg str description: a description of the parameter (optional) @@ -834,8 +843,9 @@ def copyartifact_build_selector_param(registry, xml_parent, data): """yaml: copyartifact-build-selector Control via a build parameter, which build the copyartifact plugin should - copy when it is configured to use 'build-param'. Requires the Jenkins - :jenkins-wiki:`Copy Artifact plugin <Copy+Artifact+Plugin>`. + copy when it is configured to use 'build-param'. + + Requires the Jenkins :jenkins-plugins:`Copy Artifact plugin <copyartifact>`. :arg str name: name of the build parameter to store the selection in :arg str description: a description of the parameter (optional) @@ -865,8 +875,9 @@ def maven_metadata_param(registry, xml_parent, data): """yaml: maven-metadata This parameter allows the resolution of maven artifact versions by contacting the repository and reading the maven-metadata.xml. - Requires the Jenkins :jenkins-wiki:`Maven Metadata Plugin - <Maven+Metadata+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Maven Metadata Plugin + <maven-metadata-plugin>`. :arg str name: Name of the parameter :arg str description: Description of the parameter (optional) @@ -934,8 +945,9 @@ def maven_metadata_param(registry, xml_parent, data): def hidden_param(parser, xml_parent, data): """yaml: hidden Allows you to use parameters hidden from the build with parameter page. - Requires the Jenkins :jenkins-wiki:`Hidden Parameter Plugin - <Hidden+Parameter+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Hidden Parameter Plugin + <hidden-parameter>`. :arg str name: the name of the parameter :arg str default: the default value of the parameter (optional) @@ -957,8 +969,9 @@ def random_string_param(registry, xml_parent, data): """yaml: random-string This parameter generates a random string and passes it to the build, preventing Jenkins from combining queued builds. - Requires the Jenkins :jenkins-wiki:`Random String Parameter Plugin - <Random+String+Parameter+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Random String Parameter Plugin + <random-string-parameter>`. :arg str name: Name of the parameter :arg str description: Description of the parameter (default '') @@ -990,8 +1003,9 @@ def git_parameter_param(registry, xml_parent, data): """yaml: git-parameter This parameter allows you to select a git tag, branch or revision number as parameter in Parametrized builds. - Requires the Jenkins :jenkins-wiki:`Git Parameter Plugin - <Git+Parameter+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Git Parameter Plugin + <git-parameter>`. :arg str name: Name of the parameter :arg str description: Description of the parameter (default '') diff --git a/jenkins_jobs/modules/project_externaljob.py b/jenkins_jobs/modules/project_externaljob.py index c6c7c490..969e3d65 100644 --- a/jenkins_jobs/modules/project_externaljob.py +++ b/jenkins_jobs/modules/project_externaljob.py @@ -22,8 +22,8 @@ This type of job allows you to record the execution of a process run outside Jenkins, even on a remote machine. This is designed so that you can use Jenkins as a dashboard of your existing automation system. -Requires the Jenkins :jenkins-wiki:`External Monitor Job Type Plugin -<Monitoring+external+jobs>`. +Requires the Jenkins :jenkins-plugins:`External Monitor Job Type Plugin +<external-monitor-job>`. Example: diff --git a/jenkins_jobs/modules/project_folder.py b/jenkins_jobs/modules/project_folder.py index b88db566..61885d97 100644 --- a/jenkins_jobs/modules/project_folder.py +++ b/jenkins_jobs/modules/project_folder.py @@ -19,8 +19,8 @@ The folder Project module handles creating Jenkins folder projects. You may specify ``folder`` in the ``project-type`` attribute of the :ref:`Job` definition. -Requires the Jenkins :jenkins-wiki:`CloudBees Folders Plugin -<CloudBees+Folders+Plugin>`. +Requires the Jenkins :jenkins-plugins:`CloudBees Folders Plugin +<cloudbees-folder>`. Job example: diff --git a/jenkins_jobs/modules/project_matrix.py b/jenkins_jobs/modules/project_matrix.py index f092279b..ebd566f5 100644 --- a/jenkins_jobs/modules/project_matrix.py +++ b/jenkins_jobs/modules/project_matrix.py @@ -25,17 +25,17 @@ internal YAML structure: * slave name or label (``slave``) * JDK name (``jdk``) -Requires the Jenkins :jenkins-wiki:`Matrix Project Plugin -<Matrix+Project+Plugin>`. +Requires the Jenkins :jenkins-plugins:`Matrix Project Plugin +<matrix-project>`. The module also supports additional, plugin-defined axes: * DynamicAxis (``dynamic``), requires the Jenkins - :jenkins-wiki:`DynamicAxis Plugin <DynamicAxis+Plugin>` + :jenkins-plugins:`DynamicAxis Plugin <dynamic-axis>` * GroovyAxis (``groovy``), requires the Jenkins :jenkins-wiki:`GroovyAxis Plugin <GroovyAxis>` * YamlAxis (``yaml``), requires the Jenkins - :jenkins-wiki:`Yaml Axis Plugin <Yaml+Axis+Plugin>` + :jenkins-plugins:`Yaml Axis Plugin <yaml-axis>` To tie the parent job to a specific node, you should use ``node`` parameter. On a matrix project, this will tie *only* the parent job. To restrict axes @@ -56,7 +56,7 @@ jobs, you can define a single value ``slave`` axis. stable (default) or unstable * **yaml-strategy** (optional, requires - :jenkins-wiki:`Yaml Axis Plugin <Yaml+Axis+Plugin>`): + :jenkins-plugins:`Yaml Axis Plugin <yaml-axis>`): * **exclude-key** (`str`) -- top key containing exclusion rules * Either one of: @@ -67,7 +67,7 @@ jobs, you can define a single value ``slave`` axis. * **axes** (`list`): * **axis**: * **type** (`str`) -- axis type, must be either type defined by - :jenkins-wiki:`Matrix Project Plugin <Matrix+Project+Plugin>` + :jenkins-plugins:`Matrix Project Plugin <matrix-project>` (``label-expression``, ``user-defined``, ``slave`` or ``jdk``) or a type defined by a plugin (see top of this document for a list of supported plugins). @@ -80,7 +80,7 @@ Example: .. literalinclude:: /../../tests/general/fixtures/matrix-axis003.yaml -Requires the Jenkins :jenkins-wiki:`ShiningPanda Plugin <ShiningPanda+Plugin>`. +Requires the Jenkins :jenkins-plugins:`ShiningPanda Plugin <shiningpanda>`. Example: diff --git a/jenkins_jobs/modules/project_maven.py b/jenkins_jobs/modules/project_maven.py index 719b1d2d..91178598 100755 --- a/jenkins_jobs/modules/project_maven.py +++ b/jenkins_jobs/modules/project_maven.py @@ -70,8 +70,8 @@ in the :ref:`Job` definition. build succeeds ('SUCCESS'), build succeeds or is unstable ('UNSTABLE'), regardless of build result ('FAILURE'). (default 'FAILURE'). -Requires the Jenkins :jenkins-wiki:`Config File Provider Plugin -<Config+File+Provider+Plugin>` +Requires the Jenkins :jenkins-plugins:`Config File Provider Plugin +<config-file-provider>` for the Config File Provider "settings" and "global-settings" config. Example: diff --git a/jenkins_jobs/modules/project_multibranch.py b/jenkins_jobs/modules/project_multibranch.py index 3761ddc1..93b5f380 100644 --- a/jenkins_jobs/modules/project_multibranch.py +++ b/jenkins_jobs/modules/project_multibranch.py @@ -26,11 +26,12 @@ which means that there is no guarantee that its behavior (or configuration) will not change, even between minor releases. Plugins required: - * :jenkins-wiki:`Workflow Plugin <Workflow+Plugin>`. - * :jenkins-wiki:`Pipeline Multibranch Defaults Plugin - <Pipeline+Multibranch+Defaults+Plugin>` (optional) - * :jenkins-wiki:`Basic Branch Build Strategies Plugin - <Basic+Branch+Build+Strategies+Plugin>` (optional) + +* :jenkins-plugins:`Workflow Plugin <workflow-aggregator>`. +* :jenkins-plugins:`Pipeline Multibranch Defaults Plugin + <pipeline-multibranch-defaults>` (optional) +* :jenkins-plugins:`Basic Branch Build Strategies Plugin + <basic-branch-build-strategies>` (optional) :Job Parameters: @@ -294,8 +295,8 @@ class WorkflowMultiBranchDefaults(WorkflowMultiBranch): def bitbucket_scm(xml_parent, data): r"""Configure BitBucket scm - Requires the :jenkins-wiki:`Bitbucket Branch Source Plugin - <Bitbucket+Branch+Source+Plugin>`. + Requires the :jenkins-plugins:`Bitbucket Branch Source Plugin + <cloudbees-bitbucket-branch-source>`. :arg str credentials-id: The credential to use to scan BitBucket. (required) @@ -307,8 +308,8 @@ def bitbucket_scm(xml_parent, data): (default false) :arg str server-url: The address of the bitbucket server. (optional) :arg str head-filter-regex: A regular expression for filtering - discovered source branches. Requires the :jenkins-wiki:`SCM API Plugin - <SCM+API+Plugin>`. + discovered source branches. Requires the :jenkins-plugins:`SCM API + Plugin <scm-api>`. :arg str discover-branch: Discovers branches on the repository. Valid options: ex-pr, only-pr, all. Value is not specified by default. @@ -338,14 +339,14 @@ def bitbucket_scm(xml_parent, data): be checked out to a local branch named master, and a remote branch origin/develop/new-feature will be checked out to a local branch named develop/newfeature. - Requires the :jenkins-wiki:`Git Plugin <Git+Plugin>`. + Requires the :jenkins-plugins:`Git Plugin <git>`. :arg dict checkout-over-ssh: Checkout repo over ssh. * **credentials** ('str'): Credentials to use for checkout of the repo over ssh. :arg dict filter-by-name-wildcard: Enable filter by name with wildcards. - Requires the :jenkins-wiki:`SCM API Plugin <SCM+API+Plugin>`. + Requires the :jenkins-plugins:`SCM API Plugin <scm-api>`. * **includes** ('str'): Space-separated list of name patterns to consider. You may use * as a wildcard; @@ -546,8 +547,8 @@ def bitbucket_scm(xml_parent, data): def gerrit_scm(xml_parent, data): """Configure Gerrit SCM - Requires the :jenkins-wiki:`Gerrit Code Review Plugin - <Gerrit+Code+Review+Plugin>`. + Requires the :jenkins-plugins:`Gerrit Code Review Plugin + <gerrit-code-review>`. :arg str url: The git url. (required) :arg str credentials-id: The credential to use to connect to the GIT URL. @@ -569,6 +570,13 @@ def gerrit_scm(xml_parent, data): (like to disable SCM triggering or to override the pipeline durability) (optional) Refer to :func:`~property_strategies <property_strategies>`. + :arg dict filter-checks: Enable the filtering by pending checks, allowing to + discover the changes that need validation only. This feature is using + the gerrit checks plugin. + (optional) + query-operator: Name of the query operator, supported values are: + 'SCHEME' or 'ID'. + query-string: Value of the query operator. Minimal Example: @@ -583,7 +591,10 @@ def gerrit_scm(xml_parent, data): source = XML.SubElement( xml_parent, "source", - {"class": "jenkins.plugins.gerrit.GerritSCMSource", "plugin": "gerrit"}, + { + "class": "jenkins.plugins.gerrit.GerritSCMSource", + "plugin": "gerrit-code-review", + }, ) source_mapping = [ ("", "id", "-".join(["gr", data.get("url", "")])), @@ -632,11 +643,25 @@ def gerrit_scm(xml_parent, data): if data.get("build-strategies", None): build_strategies(xml_parent, data) + # FilterChecks Trait + checks = data.get("filter-checks", None) + if checks: + checks_trait = XML.SubElement( + traits, "jenkins.plugins.gerrit.traits.FilterChecksTrait" + ) + checks_source_mapping = [ + ("query-operator", "queryOperator", None), + ("query-string", "queryString", None), + ] + helpers.convert_mapping_to_xml( + checks_trait, checks, checks_source_mapping, fail_required=True + ) + def git_scm(xml_parent, data): r"""Configure Git SCM - Requires the :jenkins-wiki:`Git Plugin <Git+Plugin>`. + Requires the :jenkins-plugins:`Git Plugin <git>`. :arg str url: The git repo url. (required) :arg str credentials-id: The credential to use to connect to the GIT repo. @@ -649,8 +674,8 @@ def git_scm(xml_parent, data): :arg bool ignore-on-push-notifications: If a job should not trigger upon push notifications. (default false) :arg str head-filter-regex: A regular expression for filtering - discovered source branches. Requires the :jenkins-wiki:`SCM API Plugin - <SCM+API+Plugin>`. + discovered source branches. Requires the :jenkins-plugins:`SCM API + Plugin <scm-api>`. :arg list build-strategies: Provides control over whether to build a branch (or branch like things such as change requests and tags) whenever it is discovered initially or a change from the previous revision has been @@ -753,8 +778,8 @@ def git_scm(xml_parent, data): def github_scm(xml_parent, data): r"""Configure GitHub SCM - Requires the :jenkins-wiki:`GitHub Branch Source Plugin - <GitHub+Branch+Source+Plugin>`. + Requires the :jenkins-plugins:`GitHub Branch Source Plugin + <github-branch-source>`. :arg str api-uri: The GitHub API uri for hosted / on-site GitHub. Must first be configured in Global Configuration. (default GitHub) @@ -789,8 +814,8 @@ def github_scm(xml_parent, data): Refer to :func:`~build_strategies <build_strategies>`. :arg str notification-context: Change the default GitHub check notification context from "continuous-integration/jenkins/SUFFIX" to a custom text, - Requires the :jenkins-wiki:`Github Custom Notification Context SCM - Behaviour <Github+Custom+Notification+Context+SCM+Behaviour+Plugin>`. + Requires the :jenkins-plugins:`Github Custom Notification Context SCM + Behaviour <github-scm-trait-notification-context>`. :arg dict property-strategies: Provides control over how to build a branch (like to disable SCM triggering or to override the pipeline durability) (optional) @@ -979,8 +1004,8 @@ def github_scm(xml_parent, data): def build_strategies(xml_parent, data): """Configure Basic Branch Build Strategies. - Requires the :jenkins-wiki:`Basic Branch Build Strategies Plugin - <Basic+Branch+Build+Strategies+Plugin>`. + Requires the :jenkins-plugins:`Basic Branch Build Strategies Plugin + <basic-branch-build-strategies>`. :arg list build-strategies: Definition of build strategies. @@ -1152,7 +1177,7 @@ def build_strategies(xml_parent, data): def property_strategies(xml_parent, data): """Configure Basic Branch Property Strategies. - Requires the :jenkins-wiki:`Branch API Plugin <Branch+API+Plugin>`. + Requires the :jenkins-plugins:`Branch API Plugin <branch-api>`. :arg dict property-strategies: Definition of property strategies. Either `named-branches` or `all-branches` may be specified, but not both. @@ -1165,8 +1190,9 @@ def property_strategies(xml_parent, data): * **pipeline-branch-durability-override** (str): Set a custom branch speed/durability level. Valid values: performance-optimized, survivable-nonatomic, or - max-survivability (optional) Requires the :jenkins-wiki: - `Pipeline Multibranch Plugin <Pipeline+Multibranch+Plugin>` + max-survivability (optional) + Requires the :jenkins-plugins:`Pipeline Multibranch Plugin + <workflow-multibranch>` * **named-branches** (dict): Named branches get different properties. Comprised of a list of defaults and a list of property strategy @@ -1181,8 +1207,9 @@ def property_strategies(xml_parent, data): * **pipeline-branch-durability-override** (str): Set a custom branch speed/durability level. Valid values: performance-optimized, survivable-nonatomic, or - max-survivability (optional) Requires the :jenkins-wiki: - `Pipeline Multibranch Plugin <Pipeline+Multibranch+Plugin>` + max-survivability (optional) + Requires the :jenkins-plugins:`Pipeline Multibranch Plugin + <workflow-multibranch>` * **exceptions** (list): A list of branch names and the property strategies to be used on that branch, instead of any listed @@ -1199,9 +1226,9 @@ def property_strategies(xml_parent, data): * **pipeline-branch-durability-override** (str): Set a custom branch speed/durability level. Valid values: performance-optimized, survivable-nonatomic, or - max-survivability (optional) Requires the - :jenkins-wiki:`Pipeline Multibranch Plugin - <Pipeline+Multibranch+Plugin>` + max-survivability (optional) + Requires the :jenkins-plugins:`Pipeline + Multibranch Plugin <workflow-multibranch>` """ valid_prop_strats = ["all-branches", "named-branches"] diff --git a/jenkins_jobs/modules/project_multijob.py b/jenkins_jobs/modules/project_multijob.py index 6536432b..fde5986d 100644 --- a/jenkins_jobs/modules/project_multijob.py +++ b/jenkins_jobs/modules/project_multijob.py @@ -21,7 +21,7 @@ the :ref:`Job` definition. This project type may use :py:func:`jenkins_jobs.modules.builders.multijob` \ builders. -Requires the Jenkins :jenkins-wiki:`Multijob Plugin <Multijob+Plugin>`. +Requires the Jenkins :jenkins-plugins:`Multijob Plugin <jenkins-multijob-plugin>`. Example:: diff --git a/jenkins_jobs/modules/project_pipeline.py b/jenkins_jobs/modules/project_pipeline.py index 3248c30d..15c39cb4 100644 --- a/jenkins_jobs/modules/project_pipeline.py +++ b/jenkins_jobs/modules/project_pipeline.py @@ -23,7 +23,7 @@ The Pipeline Project module handles creating Jenkins Pipeline projects You may specify ``pipeline`` in the ``project-type`` attribute of the :ref:`Job` definition. -Requires the Jenkins :jenkins-wiki:`Pipeline Plugin <Pipeline+Plugin>`: +Requires the Jenkins :jenkins-plugins:`Pipeline Plugin <workflow-aggregator>`. In order to write an inline script within a job-template you have to escape the curly braces by doubling them in the DSL: { -> {{ , otherwise it will be @@ -93,8 +93,8 @@ class Pipeline(jenkins_jobs.modules.base.Base): xml_parent, "definition", { - "plugin": "workflow-cps", "class": "org.jenkinsci.plugins." "workflow.cps.CpsFlowDefinition", + "plugin": "workflow-cps", }, ) XML.SubElement(xml_definition, "script").text = data["dsl"] @@ -103,9 +103,9 @@ class Pipeline(jenkins_jobs.modules.base.Base): xml_parent, "definition", { - "plugin": "workflow-cps", "class": "org.jenkinsci.plugins.workflow.cps." "CpsScmFlowDefinition", + "plugin": "workflow-cps", }, ) else: diff --git a/jenkins_jobs/modules/project_workflow.py b/jenkins_jobs/modules/project_workflow.py index 731f7257..994e89c8 100644 --- a/jenkins_jobs/modules/project_workflow.py +++ b/jenkins_jobs/modules/project_workflow.py @@ -25,7 +25,7 @@ You may specify ``workflow`` in the ``project-type`` attribute of the :ref:`Job` definition. For now only inline scripts are supported. -Requires the Jenkins :jenkins-wiki:`Workflow Plugin <Workflow+Plugin>`. +Requires the Jenkins :jenkins-plugins:`Workflow Plugin <workflow-aggregator>`. In order to use it for job-template you have to escape the curly braces by doubling them in the DSL: { -> {{ , otherwise it will be interpreted by the @@ -66,8 +66,8 @@ class Workflow(jenkins_jobs.modules.base.Base): xml_parent, "definition", { - "plugin": "workflow-cps", "class": "org.jenkinsci.plugins." "workflow.cps.CpsFlowDefinition", + "plugin": "workflow-cps", }, ) diff --git a/jenkins_jobs/modules/properties.py b/jenkins_jobs/modules/properties.py index 342841f8..867d5399 100644 --- a/jenkins_jobs/modules/properties.py +++ b/jenkins_jobs/modules/properties.py @@ -46,6 +46,7 @@ import jenkins_jobs.modules.helpers as helpers def builds_chain_fingerprinter(registry, xml_parent, data): """yaml: builds-chain-fingerprinter Builds chain fingerprinter. + Requires the Jenkins :jenkins-wiki:`Builds chain fingerprinter Plugin <Builds+chain+fingerprinter>`. @@ -75,7 +76,8 @@ def builds_chain_fingerprinter(registry, xml_parent, data): def ownership(registry, xml_parent, data): """yaml: ownership Plugin provides explicit ownership for jobs and slave nodes. - Requires the Jenkins :jenkins-wiki:`Ownership Plugin <Ownership+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Ownership Plugin <ownership>`. :arg bool enabled: whether ownership enabled (default : true) :arg str owner: the owner of job @@ -107,8 +109,9 @@ def promoted_build(registry, xml_parent, data): name must be created via the web interface in the job in order for the job promotion to persist. Promotion processes themselves cannot be configured by jenkins-jobs due to the separate storage of plugin configuration files. - Requires the Jenkins :jenkins-wiki:`Promoted Builds Plugin - <Promoted+Builds+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Promoted Builds Plugin + <promoted-builds>`. :arg list names: the promoted build names (optional) @@ -130,7 +133,8 @@ def promoted_build(registry, xml_parent, data): def gitbucket(parser, xml_parent, data): """yaml: gitbucket Integrate GitBucket to Jenkins. - Requires the Jenkins :jenkins-wiki:`GitBucket Plugin <GitBucket+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`GitBucket Plugin <gitbucket>`. :arg str url: GitBucket URL to issue (required) :arg bool link-enabled: Enable hyperlink to issue (default false) @@ -186,7 +190,8 @@ def gitlab(registry, xml_parent, data): """yaml: gitlab Sets the GitLab connection for the project. Configured via Jenkins Global Configuration. - Requires the Jenkins :jenkins-wiki:`GitLab Plugin <GitLab+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`GitLab Plugin <gitlab-plugin>`. :arg str connection: the GitLab connection name (required) @@ -206,8 +211,9 @@ def gitlab(registry, xml_parent, data): def gitlab_logo(registry, xml_parent, data): """yaml: gitlab-logo Configures the GitLab-Logo Plugin. - Requires the Jenkins :jenkins-wiki:`GitLab Logo Plugin - <GitLab+Logo+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`GitLab Logo Plugin + <gitlab-logo>`. :arg str repository-name: the GitLab repository name (required) @@ -226,7 +232,8 @@ def gitlab_logo(registry, xml_parent, data): def disk_usage(registry, xml_parent, data): """yaml: disk-usage Enables the Disk Usage Plugin. - Requires the Jenkins :jenkins-wiki:`Disk Usage Plugin <Disk+Usage+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Disk Usage Plugin <disk-usage>`. Example: @@ -239,7 +246,8 @@ def disk_usage(registry, xml_parent, data): def least_load(registry, xml_parent, data): """yaml: least-load Enables the Least Load Plugin. - Requires the Jenkins :jenkins-wiki:`Least Load Plugin <Least+Load+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Least Load Plugin <leastload>`. :arg bool disabled: whether or not leastload is disabled (default true) @@ -259,8 +267,9 @@ def least_load(registry, xml_parent, data): def throttle(registry, xml_parent, data): """yaml: throttle Throttles the number of builds for this job. - Requires the Jenkins :jenkins-wiki:`Throttle Concurrent Builds Plugin - <Throttle+Concurrent+Builds+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Throttle Concurrent Builds Plugin + <throttle-concurrents>`. :arg str option: throttle `project` (throttle the project alone) or `category` (throttle the project as part of one or more categories) @@ -320,8 +329,8 @@ def throttle(registry, xml_parent, data): def branch_api(registry, xml_parent, data): """yaml: branch-api Enforces a minimum time between builds based on the desired maximum rate. - Requires the Jenkins :jenkins-wiki:`Branch API Plugin - <Branch+API+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Branch API Plugin <branch-api>`. :arg int number-of-builds: The maximum number of builds allowed within the specified time period. (default 1) @@ -362,8 +371,7 @@ def branch_api(registry, xml_parent, data): def sidebar(registry, xml_parent, data): """yaml: sidebar Allows you to add links in the sidebar. - Requires the Jenkins :jenkins-wiki:`Sidebar-Link Plugin - <Sidebar-Link+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Sidebar-Link Plugin <sidebar-link>`. :arg str url: url to link to (optional) :arg str text: text for the link (optional) @@ -390,7 +398,8 @@ def sidebar(registry, xml_parent, data): def inject(registry, xml_parent, data): """yaml: inject Allows you to inject environment variables into the build. - Requires the Jenkins :jenkins-wiki:`Env Inject Plugin <EnvInject+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`EnvInject Plugin <envinject>`. :arg str properties-file: file to read with properties (optional) :arg str properties-content: key=value properties (optional) @@ -510,7 +519,7 @@ def authorization(registry, xml_parent, data): """ # get the folder name if it exists - in_a_folder = data.pop("_use_folder_perms") + in_a_folder = data.pop("_use_folder_perms", None) if data else None credentials = "com.cloudbees.plugins.credentials.CredentialsProvider." ownership = "com.synopsys.arc.jenkins.plugins.ownership.OwnershipPlugin." @@ -569,8 +578,8 @@ def priority_sorter(registry, xml_parent, data): """yaml: priority-sorter Allows simple ordering of builds, using a configurable job priority. - Requires the Jenkins :jenkins-wiki:`Priority Sorter Plugin - <Priority+Sorter+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Priority Sorter Plugin + <PrioritySorter>`. :arg int priority: Priority of the job. Higher value means higher priority, with 3 as the default priority. (required) @@ -615,8 +624,8 @@ def build_blocker(registry, xml_parent, data): if at least one name of currently running jobs is matching with one of the given regular expressions. - Requires the Jenkins :jenkins-wiki:`Build Blocker Plugin - <Build+Blocker+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Build Blocker Plugin + <build-blocker-plugin>`. :arg bool use-build-blocker: Enable or disable build blocker (default true) :arg list blocking-jobs: One regular expression per line to select @@ -668,8 +677,8 @@ def copyartifact(registry, xml_parent, data): Specify a list of projects that have access to copy the artifacts of this project. - Requires the Jenkins :jenkins-wiki:`Copy Artifact plugin - <Copy+Artifact+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Copy Artifact plugin + <copyartifact>`. :arg str projects: comma separated list of projects that can copy artifacts of this project. Wild card character '*' is available. @@ -704,7 +713,7 @@ def batch_tasks(registry, xml_parent, data): Batch tasks and builds "lock" the workspace, so when one of those activities is in progress, all the others will block in the queue. - Requires the Jenkins :jenkins-wiki:`Batch Task Plugin <Batch+Task+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Batch Task Plugin <batch-task>`. :arg list batch-tasks: Batch tasks. @@ -731,7 +740,7 @@ def heavy_job(registry, xml_parent, data): This plugin allows you to define "weight" on each job, and making each job consume that many executors - Requires the Jenkins :jenkins-wiki:`Heavy Job Plugin <Heavy+Job+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Heavy Job Plugin <heavy-job>`. :arg int weight: Specify the total number of executors that this job should occupy (default 1) @@ -754,8 +763,8 @@ def slave_utilization(registry, xml_parent, data): This plugin allows you to specify the percentage of a slave's capacity a job wants to use. - Requires the Jenkins :jenkins-wiki:`Slave Utilization Plugin - <Slave+Utilization+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Slave Utilization Plugin + <slave-utilization-plugin>`. :arg int slave-percentage: Specify the percentage of a slave's execution slots that this job should occupy (default 0) @@ -786,8 +795,8 @@ def slave_utilization(registry, xml_parent, data): def delivery_pipeline(registry, xml_parent, data): """yaml: delivery-pipeline - Requires the Jenkins :jenkins-wiki:`Delivery Pipeline Plugin - <Delivery+Pipeline+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Delivery Pipeline Plugin + <delivery-pipeline-plugin>`. :arg str stage: Name of the stage for this job (default '') :arg str task: Name of the task for this job (default '') @@ -823,7 +832,7 @@ def zeromq_event(registry, xml_parent, data): (start, complete, finish) to a ZMQ PUB socket. Requires the Jenkins `ZMQ Event Publisher. - <https://git.openstack.org/cgit/openstack-infra/zmq-event-publisher>`_ + <https://opendev.org/x/zmq-event-publisher>`_ Example: @@ -843,7 +852,7 @@ def zeromq_event(registry, xml_parent, data): def slack(registry, xml_parent, data): """yaml: slack - Requires the Jenkins :jenkins-wiki:`Slack Plugin <Slack+Plugin>` + Requires the Jenkins :jenkins-plugins:`Slack Plugin <slack>`. When using Slack Plugin version < 2.0, Slack Plugin itself requires a publisher aswell as properties please note that you have to add the @@ -920,7 +929,8 @@ def rebuild(registry, xml_parent, data): This plug-in allows the user to rebuild a parameterized build without entering the parameters again.It will also allow the user to edit the parameters before rebuilding. - Requires the Jenkins :jenkins-wiki:`Rebuild Plugin <Rebuild+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Rebuild Plugin <rebuild>`. :arg bool auto-rebuild: Rebuild without asking for parameters (default false) @@ -985,8 +995,8 @@ def slave_prerequisites(registry, xml_parent, data): This plugin allows you to check prerequisites on slave before a job can run a build on it - Requires the Jenkins :jenkins-wiki:`Slave Prerequisites Plugin - <Slave+Prerequisites+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Slave Prerequisites Plugin + <slave-prerequisites>`. :arg str script: A script to be executed on slave node. If returning non 0 status, the node will be vetoed from hosting @@ -1024,8 +1034,8 @@ def groovy_label(registry, xml_parent, data): This plugin allows you to use Groovy script to restrict where this project can be run. - Requires the Jenkins :jenkins-wiki:`Groovy Label Assignment Plugin - <Groovy+Label+Assignment+plugin>`. + Requires the Jenkins :jenkins-plugins:`Groovy Label Assignment Plugin + <groovy-label-assignment>`. Return value from Groovy script is treated as Label Expression. It is treated as followings: @@ -1078,8 +1088,8 @@ def groovy_label(registry, xml_parent, data): def lockable_resources(registry, xml_parent, data): """yaml: lockable-resources - Requires the Jenkins :jenkins-wiki:`Lockable Resources Plugin - <Lockable+Resources+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Lockable Resources Plugin + <lockable-resources>`. :arg str resources: List of required resources, space separated. (required, mutual exclusive with label) @@ -1138,7 +1148,7 @@ def lockable_resources(registry, xml_parent, data): def docker_container(registry, xml_parent, data): """yaml: docker-container - Requires the Jenkins: :jenkins-wiki:`Docker Plugin<Docker+Plugin>`. + Requires the Jenkins: :jenkins-plugins:`Docker Plugin <docker-plugin>`. :arg str docker-registry-url: URL of the Docker registry. (default '') :arg str credentials-id: Credentials Id for the Docker registey. @@ -1190,8 +1200,9 @@ def docker_container(registry, xml_parent, data): def disable_resume(registry, xml_parent, data): """yaml: disable-resume Do not allow the pipeline to resume if the master restarts - Requires the Jenkins :jenkins-wiki:`Pipeline Job Plugin - <Pipeline+Job+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Pipeline Job Plugin + <workflow-aggregator>`. Example: @@ -1211,8 +1222,8 @@ def cachet_gating(registry, xml_parent, data): The Cachet Gating Plugin provides a gating mechanism based on the availability of resources. - Requires the Jenkins: :jenkins-wiki:`Cachet Gate Plugin - <Cachet+Gate+Plugin>`. + Requires the Jenkins: :jenkins-plugins:`Cachet Gate Plugin + <cachet-gating>`. :arg bool required-resources: Confirm availability of listed resources before building. Requires the list of resources to diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py index da281485..6c1de7ce 100644..100755 --- a/jenkins_jobs/modules/publishers.py +++ b/jenkins_jobs/modules/publishers.py @@ -42,8 +42,8 @@ import jenkins_jobs.modules.helpers as helpers def influx_db(registry, xml_parent, data): """yaml: influx-db - Requires the Jenkins :jenkins-wiki: `Influx DB - <Influx+DB+Plugin>`. + Requires the Jenkins :jenkins-plugins: `Influx DB + <influxdb>`. """ influx_db = XML.SubElement( @@ -67,7 +67,7 @@ def allure(registry, xml_parent, data): """yaml: allure Publish Allure report for the build. Requires the Jenkins - :jenkins-wiki:`Allure Plugin <Allure+Plugin>`. + :jenkins-plugins:`Allure Plugin <allure-jenkins-plugin>`. :arg str jdk: String identifier for a JDK installation in Jenkins :arg str commandline: String identifier for a Allure-commandline tool @@ -174,6 +174,7 @@ def archive(registry, xml_parent, data): def blame_upstream(registry, xml_parent, data): """yaml: blame-upstream Notify upstream committers when build fails + Requires the Jenkins :jenkins-wiki:`Blame upstream committers Plugin <Blame+Upstream+Committers+Plugin>`. @@ -193,7 +194,7 @@ def jclouds(registry, xml_parent, data): """yaml: jclouds JClouds Cloud Storage Settings provides a way to store artifacts on JClouds supported storage providers. Requires the Jenkins - :jenkins-wiki:`JClouds Plugin <JClouds+Plugin>`. + :jenkins-plugins:`JClouds Plugin <jclouds-jenkins>`. JClouds Cloud Storage Settings must be configured for the Jenkins instance. @@ -235,7 +236,7 @@ def jclouds(registry, xml_parent, data): def javadoc(registry, xml_parent, data): """yaml: javadoc Publish Javadoc - Requires the Jenkins :jenkins-wiki:`Javadoc Plugin <Javadoc+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Javadoc Plugin <javadoc>`. :arg str directory: Directory relative to the root of the workspace, such as 'myproject/build/javadoc' (optional) @@ -263,7 +264,7 @@ def javadoc(registry, xml_parent, data): def jdepend(registry, xml_parent, data): """yaml: jdepend Publish jdepend report - Requires the :jenkins-wiki:`JDepend Plugin <JDepend+Plugin>`. + Requires the :jenkins-plugins:`JDepend Plugin <jdepend>`. :arg str file: path to jdepend file (required) @@ -282,15 +283,15 @@ def hue_light(registry, xml_parent, data): This plugin shows the state of your builds using the awesome Philips hue lights. - Requires the Jenkins :jenkins-wiki:`hue-light Plugin - <hue-light+Plugin>`. + Requires the Jenkins :jenkins-plugins:`hue-light Plugin + <hue-light>`. :arg int light-id: ID of light. Define multiple lights by a comma as a separator (required) - :arg string pre-build: Colour of building state (default 'blue') - :arg string good-build: Colour of successful state (default 'green') - :arg string unstable-build: Colour of unstable state (default 'yellow') - :arg string bad-build: Colour of unsuccessful state (default 'red') + :arg str pre-build: Colour of building state (default 'blue') + :arg str good-build: Colour of successful state (default 'green') + :arg str unstable-build: Colour of unstable state (default 'yellow') + :arg str bad-build: Colour of unsuccessful state (default 'red') Full Example: @@ -326,7 +327,7 @@ def hue_light(registry, xml_parent, data): def campfire(registry, xml_parent, data): """yaml: campfire Send build notifications to Campfire rooms. - Requires the Jenkins :jenkins-wiki:`Campfire Plugin <Campfire+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Campfire Plugin <campfire>`. Campfire notifications global default values must be configured for the Jenkins instance. Default values will be used if no specific @@ -364,8 +365,8 @@ def campfire(registry, xml_parent, data): def mqtt(registry, xml_parent, data): """yaml: mqtt This plugin lets you send build notifications to a MQTT message queue. - Requires the :jenkins-wiki:`MQTT Notification Plugin - <MQTT+Notification+Plugin>`. + Requires the :jenkins-plugins:`MQTT Notification Plugin + <mqtt-notification-plugin>`. :arg str broker-url: the broker URL, as protocol://address:port (required) :arg str credentials-id: credentials to use to connect to the broker @@ -411,7 +412,7 @@ def codecover(registry, xml_parent, data): """yaml: codecover This plugin allows you to capture code coverage report from CodeCover. Jenkins will generate the trend report of coverage. - Requires the Jenkins :jenkins-wiki:`CodeCover Plugin <CodeCover+Plugin>`. + Requires the Jenkins :jenkins-plugins:`CodeCover Plugin <codecover>`. :arg str include: Specify the path to the CodeCover HTML report file, relative to the workspace root (default '') @@ -463,8 +464,8 @@ def emotional_jenkins(registry, xml_parent, data): Emotional Jenkins. This funny plugin changes the expression of Mr. Jenkins in the background when your builds fail. - Requires the Jenkins :jenkins-wiki:`Emotional Jenkins Plugin - <Emotional+Jenkins+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Emotional Jenkins Plugin + <emotional-jenkins-plugin>`. Example: @@ -481,12 +482,12 @@ def emotional_jenkins(registry, xml_parent, data): def trigger_parameterized_builds(registry, xml_parent, data): """yaml: trigger-parameterized-builds Trigger parameterized builds of other jobs. - Requires the Jenkins :jenkins-wiki:`Parameterized Trigger Plugin - <Parameterized+Trigger+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Parameterized Trigger Plugin + <parameterized-trigger>`. Use of the `node-label-name` or `node-label` parameters - requires the Jenkins :jenkins-wiki:`NodeLabel Parameter Plugin - <NodeLabel+Parameter+Plugin>`. + requires the Jenkins :jenkins-plugins:`NodeLabel Parameter Plugin + <nodelabelparameter>`. Note: 'node-parameters' overrides the Node that the triggered project is tied to. @@ -625,8 +626,8 @@ def clone_workspace(registry, xml_parent, data): """yaml: clone-workspace Archive the workspace from builds of one project and reuse them as the SCM source for another project. - Requires the Jenkins :jenkins-wiki:`Clone Workspace SCM Plugin - <Clone+Workspace+SCM+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Clone Workspace SCM Plugin + <clone-workspace-scm>`. :arg str workspace-glob: Files to include in cloned workspace (default '') :arg str workspace-exclude-glob: Files to exclude from cloned workspace @@ -673,8 +674,8 @@ def clone_workspace(registry, xml_parent, data): def cloud_foundry(parser, xml_parent, data): """yaml: cloudfoundry Pushes a project to Cloud Foundry or a CF-based platform (e.g. Stackato) at - the end of a build. Requires the Jenkins :jenkins-wiki:`Cloud Foundry - Plugin <Cloud+Foundry+Plugin>`. + the end of a build. Requires the Jenkins :jenkins-plugins:`Cloud Foundry + Plugin <cloudfoundry>`. :arg str target: The API endpoint of the platform you want to push to. This is the URL you use to access the platform, possibly with ".api" @@ -823,7 +824,7 @@ def cloud_foundry(parser, xml_parent, data): def cloverphp(registry, xml_parent, data): """yaml: cloverphp Capture code coverage reports from PHPUnit - Requires the Jenkins :jenkins-wiki:`Clover PHP Plugin <Clover+PHP+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Clover PHP Plugin <cloverphp>`. Your job definition should pass to PHPUnit the --coverage-clover option pointing to a file in the workspace (ex: clover-coverage.xml). The filename @@ -928,8 +929,8 @@ def coverage(registry, xml_parent, data): """yaml: coverage WARNING: The coverage function is deprecated. Instead, use the cobertura function to generate a cobertura coverage report. - Requires the Jenkins :jenkins-wiki:`Cobertura Coverage Plugin - <Cobertura+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Cobertura Coverage Plugin + <cobertura>`. Example: @@ -1022,8 +1023,8 @@ def coverage(registry, xml_parent, data): def cobertura(registry, xml_parent, data): """yaml: cobertura Generate a cobertura coverage report. - Requires the Jenkins :jenkins-wiki:`Cobertura Coverage Plugin - <Cobertura+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Cobertura Coverage Plugin + <cobertura>`. :arg str report-file: This is a file name pattern that can be used to locate the cobertura xml report files (optional) @@ -1127,7 +1128,7 @@ def cobertura(registry, xml_parent, data): def jacoco(registry, xml_parent, data): """yaml: jacoco Generate a JaCoCo coverage report. - Requires the Jenkins :jenkins-wiki:`JaCoCo Plugin <JaCoCo+Plugin>`. + Requires the Jenkins :jenkins-plugins:`JaCoCo Plugin <jacoco>`. :arg str exec-pattern: This is a file name pattern that can be used to locate the jacoco report files (default ``**/**.exec``) @@ -1200,8 +1201,8 @@ def jacoco(registry, xml_parent, data): def ftp(registry, xml_parent, data): """yaml: ftp Upload files via FTP. - Requires the Jenkins :jenkins-wiki:`Publish over FTP Plugin - <Publish+Over+FTP+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Publish over FTP Plugin + <publish-over-ftp>`. :arg str site: name of the ftp site (required) :arg str target: destination directory (required) @@ -1258,8 +1259,8 @@ def ftp_publisher(registry, xml_parent, data): """yaml: ftp-publisher This plugin can be used to upload project artifacts and whole directories to an ftp server. - Requires the Jenkins :jenkins-wiki:`FTP-Publisher Plugin - <FTP-Publisher+Plugin>`. + Requires the Jenkins :jenkins-plugins:`FTP-Publisher Plugin + <ftppublisher>`. :arg list uploads: List of files to upload @@ -1311,10 +1312,58 @@ def ftp_publisher(registry, xml_parent, data): helpers.convert_mapping_to_xml(ftp, data, mapping, fail_required=True) +def opsgenie(registry, xml_parent, data): + """yaml: opsgenie + OpsGenie notification on build completion, + Requires the :jenkins-plugins:`OpsGenie Notifier Plugin <opsgenie>`. + + :arg bool enable-sending-alerts: Send alerts to opsgenie. (default false) + :arg bool notify-build-start: Send a notification when the build starts. (default false) + :arg str api-key: This token is used to verify requests between OpsGenie and Jenkins. You can copy this key from your OpsGenie-Jenkins Integration page. (default '') + :arg str tags: Comma-separated list of tags you want to add on alert. (default '') + :arg str teams: Comma-separated list of teams that get notified from alert. (default '') + :arg str priority: Set the priority of the alert that's going to be created at OpsGenie, if job's build fails. (default 'P3') + :arg str build-starts-alerts-priority: Set the priority of the build started alert that's going to be created at OpsGenie. (default 'P3') + :arg str api-url: Api url that collects the webhook. (default '') + + Minimal example: + + .. literalinclude:: + /../../tests/publishers/fixtures/opsgenie-minimal.yaml + :language: yaml + + Full Example: + + .. literalinclude:: + /../../tests/publishers/fixtures/opsgenie-full.yaml + :language: yaml + """ + + mapping = [ + ("priority", "alertPriority", "P3"), + ("build-starts-alerts-priority", "notifyBuildStartPriority", "P3"), + ("enable-sending-alerts", "enable", "false"), + ("notify-build-start", "notifyBuildStart", "false"), + ("api-key", "apiKey", ""), + ("api-url", "apiUrl", ""), + ("tags", "tags", ""), + ("teams", "teams", ""), + ] + + opsgenie_notifier = XML.SubElement( + xml_parent, + "com.opsgenie.integration.jenkins.OpsGenieNotifier", + {"plugin": "opsgenie"}, + ) + + helpers.convert_mapping_to_xml(opsgenie_notifier, data, mapping, fail_required=True) + + def rocket(registry, xml_parent, data): """yaml: rocket RocketChat notification on build completion, - Requires the `RocketChat Notifier Plugin`. + Requires the :jenkins-plugins:`RocketChat Notifier Plugin + <rocketchatnotifier>`. :arg str channel: Comma separated list of rooms (e.g. #project) or persons (e.g. @john) @@ -1450,8 +1499,8 @@ def hp_alm(registry, xml_parent, data): """yaml: hp-alm Publish test results to HP-ALM. - Requires the Jenkins :jenkins-wiki:`Micro Focus Application Automation - Tools <Micro+Focus+Application+Automation+Tools)>`. + Requires the Jenkins :jenkins-plugins:`Micro Focus Application Automation + Tools <hp-application-automation-tools-plugin>`. :arg str server-name: The name of the ALM Server. (required) :arg str credentials-id: credentials-id of the user (default '') @@ -1483,7 +1532,7 @@ def hp_alm(registry, xml_parent, data): for Junit Plugin, ``**/testng-results.xml`` to find testing result file for TestNG plugin. (required) :arg str jenkins-server-url: The HTTP URL of the Jenkins Server, - form example, http://myjenkinsserver.test.com:8080 . (optional) + form example, http://jenkins.example.org:8080 . (optional) Minimal example using defaults: @@ -1531,19 +1580,19 @@ def junit(registry, xml_parent, data): (default false) :arg bool test-stability: Add historical information about test results stability (default false). - Requires the Jenkins :jenkins-wiki:`Test stability Plugin - <Test+stability+plugin>`. + Requires the Jenkins :jenkins-plugins:`Test stability Plugin + <test-stability>`. :arg bool claim-build: Allow claiming of failed tests (default false) - Requires the Jenkins :jenkins-wiki:`Claim Plugin <Claim+plugin>`. + Requires the Jenkins :jenkins-plugins:`Claim Plugin <claim>`. :arg bool measurement-plots: Create measurement plots (default false) Requires the Jenkins :jenkins-wiki:`Measurement Plots Plugin <Measurement+Plots+Plugin>`. :arg bool flaky-test-reports: Publish flaky test reports (default false). - Requires the Jenkins :jenkins-wiki:`Flaky Test Handler Plugin - <Flaky+Test+Handler+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Flaky Test Handler Plugin + <flaky-test-handler>`. :arg bool junit-attachments: Publish test attachments (default false). - Requires the Jenkins :jenkins-wiki:`JUnit Attachments Plugin - <JUnit+Attachments+Plugin>`. + Requires the Jenkins :jenkins-plugins:`JUnit Attachments Plugin + <junit-attachments>`. Minimal example using defaults: @@ -1593,8 +1642,8 @@ def cucumber_reports(registry, xml_parent, data): """yaml: cucumber-reports This plugin creates pretty cucumber-jvm html reports on jenkins. - Requires the Jenkins :jenkins-wiki:`cucumber reports - <Cucumber+Reports+Plugin>`. + Requires the Jenkins :jenkins-plugins:`cucumber reports + <cucumber-reports>`. :arg str json-reports-path: The path relative to the workspace of the json reports generated by cucumber-jvm e.g. target - leave @@ -1701,8 +1750,8 @@ def cucumber_reports(registry, xml_parent, data): def cucumber_testresult(registry, xml_parent, data): """yaml: cucumber-testresult Publish cucumber test results. - Requires the Jenkins :jenkins-wiki:`cucumber testresult - <Cucumber+Test+Result+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Cucumber testresult + <cucumber-testresult-plugin>`. :arg str results: Results filename (required) :arg bool ignore-bad-steps: Ignore not existed step results (default false) @@ -1736,8 +1785,8 @@ def cucumber_testresult(registry, xml_parent, data): def xunit(registry, xml_parent, data): """yaml: xunit - Publish tests results. Requires the Jenkins :jenkins-wiki:`xUnit Plugin - <xUnit+Plugin>`. + Publish tests results. Requires the Jenkins :jenkins-plugins:`xUnit Plugin + <xunit>`. :arg str thresholdmode: Whether thresholds represents an absolute number of tests or a percentage. Either 'number' or 'percent'. (default @@ -1897,7 +1946,7 @@ def _violations_add_entry(xml_parent, name, data): def violations(registry, xml_parent, data): """yaml: violations Publish code style violations. - Requires the Jenkins :jenkins-wiki:`Violations Plugin <Violations>`. + Requires the Jenkins :jenkins-plugins:`Violations Plugin <violations>`. The violations component accepts any number of dictionaries keyed by the name of the violations system. The dictionary has the @@ -1962,8 +2011,8 @@ def findbugs(registry, xml_parent, data): r"""yaml: findbugs FindBugs reporting for builds - Requires the Jenkins :jenkins-wiki:`FindBugs Plugin - <FindBugs+Plugin>`. + Requires the Jenkins :jenkins-plugins:`FindBugs Plugin + <findbugs>`. :arg str pattern: specifies the generated raw FindBugs XML report files, such as \*\*/findbugs.xml or \*\*/findbugsXml.xml. (default '') @@ -2029,7 +2078,7 @@ def findbugs(registry, xml_parent, data): def checkstyle(registry, xml_parent, data): """yaml: checkstyle Publish trend reports with Checkstyle. - Requires the Jenkins :jenkins-wiki:`Checkstyle Plugin <Checkstyle+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Checkstyle Plugin <checkstyle>`. The checkstyle component accepts a dictionary with the following values: @@ -2135,12 +2184,12 @@ def checkstyle(registry, xml_parent, data): def scp(registry, xml_parent, data): """yaml: scp Upload files via SCP - Requires the Jenkins :jenkins-wiki:`SCP Plugin <SCP+plugin>`. + Requires the Jenkins :jenkins-plugins:`SCP Plugin <scp>`. When writing a publisher macro, it is important to keep in mind that Jenkins uses Ant's `SCP Task <https://ant.apache.org/manual/Tasks/scp.html>`_ via the Jenkins - :jenkins-wiki:`SCP Plugin <SCP+plugin>` which relies on `FileSet + :jenkins-plugins:`SCP Plugin <scp>` which relies on `FileSet <https://ant.apache.org/manual/Types/fileset.html>`_ and `DirSet <https://ant.apache.org/manual/Types/dirset.html>`_ patterns. The relevant piece of documentation is excerpted below: @@ -2199,8 +2248,8 @@ def scp(registry, xml_parent, data): def ssh(registry, xml_parent, data): """yaml: ssh Upload files via SCP. - Requires the Jenkins :jenkins-wiki:`Publish over SSH Plugin - <Publish+Over+SSH+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Publish over SSH Plugin + <publish-over-ssh>`. :arg str site: name of the ssh site :arg str target: destination directory @@ -2267,12 +2316,12 @@ def ssh(registry, xml_parent, data): def pipeline(registry, xml_parent, data): """yaml: pipeline Specify a downstream project in a pipeline. - Requires the Jenkins :jenkins-wiki:`Build Pipeline Plugin - <Build+Pipeline+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Build Pipeline Plugin + <build-pipeline-plugin>`. Use of the `node-label-name` or `node-label` parameters - requires the Jenkins :jenkins-wiki:`NodeLabel Parameter Plugin - <NodeLabel+Parameter+Plugin>`. + requires the Jenkins :jenkins-plugins:`NodeLabel Parameter Plugin + <nodelabelparameter>`. Note: 'node-parameters' overrides the Node that the triggered project is tied to. @@ -2352,9 +2401,7 @@ def pipeline(registry, xml_parent, data): def email(registry, xml_parent, data): """yaml: email Email notifications on build failure. - Requires the Jenkins :jenkins-wiki:`Mailer Plugin - <Mailer>`. - + Requires the Jenkins :jenkins-plugins:`Mailer Plugin <mailer>`. :arg str recipients: Space separated list of recipient email addresses (required) @@ -2392,7 +2439,7 @@ def email(registry, xml_parent, data): def claim_build(registry, xml_parent, data): """yaml: claim-build Claim build failures - Requires the Jenkins :jenkins-wiki:`Claim Plugin <Claim+plugin>`. + Requires the Jenkins :jenkins-plugins:`Claim Plugin <claim>`. Example: @@ -2436,8 +2483,8 @@ def base_email_ext(registry, xml_parent, data, ttype): def email_ext(registry, xml_parent, data): """yaml: email-ext Extend Jenkin's built in email notification - Requires the Jenkins :jenkins-wiki:`Email-ext Plugin - <Email-ext+plugin>`. + Requires the Jenkins :jenkins-plugins:`Email-ext Plugin + <email-ext>`. :arg bool disable-publisher: Disable the publisher, while maintaining the settings. The usage model for this is when you want to test things out @@ -2602,7 +2649,7 @@ def email_ext(registry, xml_parent, data): def fingerprint(registry, xml_parent, data): """yaml: fingerprint Fingerprint files to track them across builds. Requires the - Jenkins :jenkins-wiki:`Fingerprint Plugin <Fingerprint+Plugin>`. + Jenkins :jenkins-plugins:`Fingerprint Plugin <create-fingerprint>`. :arg str files: files to fingerprint, follows the @includes of Ant fileset (default '') @@ -2643,6 +2690,7 @@ def aggregate_tests(registry, xml_parent, data): def aggregate_flow_tests(registry, xml_parent, data): """yaml: aggregate-flow-tests Aggregate downstream test results in a Build Flow job. + Requires the Jenkins :jenkins-wiki:`Build Flow Test Aggregator Plugin <Build+Flow+Test+Aggregator+Plugin>`. @@ -2667,7 +2715,7 @@ def aggregate_flow_tests(registry, xml_parent, data): def cppcheck(registry, xml_parent, data): """yaml: cppcheck Cppcheck result publisher - Requires the Jenkins :jenkins-wiki:`Cppcheck Plugin <Cppcheck+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Cppcheck Plugin <cppcheck>`. :arg str pattern: File pattern for cppcheck xml report (required) :arg bool ignoreblankfiles: Ignore blank files (default false) @@ -2793,7 +2841,7 @@ def cppcheck(registry, xml_parent, data): def logparser(registry, xml_parent, data): """yaml: logparser - Requires the Jenkins :jenkins-wiki:`Log Parser Plugin <Log+Parser+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Log Parser Plugin <log-parser>`. :arg str parse-rules: full path to parse rules (default '') :arg bool use-project-rules: use project rules instead of global @@ -2833,13 +2881,14 @@ def logparser(registry, xml_parent, data): def copy_to_master(registry, xml_parent, data): """yaml: copy-to-master - Copy files to master from slave + Copy files to master from slave. + Requires the Jenkins :jenkins-wiki:`Copy To Slave Plugin <Copy+To+Slave+Plugin>`. :arg list includes: list of file patterns to copy :arg list excludes: list of file patterns to exclude - :arg string destination: absolute path into which the files will be copied. + :arg str destination: absolute path into which the files will be copied. If left blank they will be copied into the workspace of the current job (default '') :arg bool run-after-result: If this is checked then copying files back to @@ -2872,7 +2921,7 @@ def copy_to_master(registry, xml_parent, data): def jira(registry, xml_parent, data): """yaml: jira Update relevant JIRA issues - Requires the Jenkins :jenkins-wiki:`JIRA Plugin <JIRA+Plugin>`. + Requires the Jenkins :jenkins-plugins:`JIRA Plugin <jira>`. Example: @@ -2885,7 +2934,7 @@ def jira(registry, xml_parent, data): def growl(registry, xml_parent, data): """yaml: growl Push notifications to growl client. - Requires the Jenkins :jenkins-wiki:`Growl Plugin <Growl+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Growl Plugin <growl>`. :arg str ip: IP address to send growl notifications to (required) :arg bool notify-only-on-fail-or-recovery: send a growl only when build @@ -2914,12 +2963,12 @@ def growl(registry, xml_parent, data): def groovy_postbuild(registry, xml_parent, data): """yaml: groovy-postbuild Execute a groovy script. - Requires the Jenkins :jenkins-wiki:`Groovy Postbuild Plugin - <Groovy+Postbuild+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Groovy Postbuild Plugin + <groovy-postbuild>`. Please pay attention on version of plugin you have installed. There were incompatible changes between 1.x and 2.x. Please see - :jenkins-wiki:`home page <Groovy+Postbuild+Plugin>` of this plugin + :jenkins-plugins:`home page <groovy-postbuild>` of this plugin for full information including migration process. :arg str script: The groovy script to execute @@ -3069,8 +3118,8 @@ def base_publish_over( def cifs(registry, xml_parent, data): """yaml: cifs Upload files via CIFS. - Requires the Jenkins :jenkins-wiki:`Publish over CIFS Plugin - <Publish+Over+CIFS+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Publish over CIFS Plugin + <publish-over-cifs>`. :arg str site: name of the cifs site/share (required) :arg str target: destination directory (required) @@ -3131,8 +3180,8 @@ def cigame(registry, xml_parent, data): """yaml: cigame This plugin introduces a game where users get points for improving the builds. - Requires the Jenkins :jenkins-wiki:`The Continuous Integration Game plugin - <The+Continuous+Integration+Game+plugin>`. + Requires the Jenkins :jenkins-plugins:`The Continuous Integration Game + plugin <ci-game>`. Example: @@ -3146,8 +3195,7 @@ def sonar(registry, xml_parent, data): """yaml: sonar Sonar plugin support. Requires the Jenkins `Sonar Plugin. - <http://docs.sonarqube.org/display/SONAR/\ - Analyzing+with+SonarQube+Scanner+for+Jenkins>`_ + <https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-jenkins>`_ :arg str installation-name: name of the Sonar instance to use (optional) :arg str jdk: JDK to use (inherited from the job if omitted). (optional) @@ -3175,8 +3223,8 @@ def sonar(registry, xml_parent, data): possible to provide a ConfigFileProvider settings file, see Example below. (optional) - Requires the Jenkins :jenkins-wiki:`Config File Provider Plugin - <Config+File+Provider+Plugin>` + Requires the Jenkins :jenkins-plugins:`Config File Provider Plugin + <config-file-provider>` for the Config File Provider "settings" and "global-settings" config. This publisher supports the post-build action exposed by the Jenkins @@ -3235,8 +3283,8 @@ def sounds(parser, xml_parent, data): remotely by piping them through an operating system command, or simultaneously through all browsers on a Jenkins page. - Requires the Jenkins :jenkins-wiki:`Jenkins Sounds plugin - <Jenkins+Sounds+plugin>` + Requires the Jenkins :jenkins-plugins:`Jenkins Sounds plugin + <sounds>` :arg dict success: Play on success @@ -3317,8 +3365,8 @@ def sounds(parser, xml_parent, data): def performance(registry, xml_parent, data): r"""yaml: performance Publish performance test results from jmeter and junit. - Requires the Jenkins :jenkins-wiki:`Performance Plugin - <Performance+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Performance Plugin + <performance>`. :arg int failed-threshold: Specify the error percentage threshold that set the build failed. A negative value means don't use this threshold @@ -3442,7 +3490,7 @@ def performance(registry, xml_parent, data): def join_trigger(registry, xml_parent, data): """yaml: join-trigger Trigger a job after all the immediate downstream jobs have completed. - Requires the Jenkins :jenkins-wiki:`Join Plugin <Join+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Join Plugin <join>`. :arg bool even-if-unstable: if true jobs will trigger even if some downstream jobs are marked as unstable (default false) @@ -3473,7 +3521,7 @@ def join_trigger(registry, xml_parent, data): def jabber(registry, xml_parent, data): """yaml: jabber Integrates Jenkins with the Jabber/XMPP instant messaging protocol - Requires the Jenkins :jenkins-wiki:`Jabber Plugin <Jabber+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Jabber Plugin <jabber>`. :arg bool notify-on-build-start: Whether to send notifications to channels when a build starts (default false) @@ -3582,8 +3630,8 @@ def jabber(registry, xml_parent, data): def workspace_cleanup(registry, xml_parent, data): """yaml: workspace-cleanup (post-build) - Requires the Jenkins :jenkins-wiki:`Workspace Cleanup Plugin - <Workspace+Cleanup+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Workspace Cleanup Plugin + <ws-cleanup>`. The pre-build workspace-cleanup is available as a wrapper. @@ -3704,8 +3752,8 @@ def artifactory(registry, xml_parent, data): Uses/requires the Artifactory plugin to deploy artifacts to Artifactory Server. - Requires the Jenkins :jenkins-wiki:`Artifactory Plugin - <Artifactory+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Artifactory Plugin + <artifactory>`. :arg str url: Artifactory server url (default '') :arg str name: Artifactory user with permissions use for @@ -3845,8 +3893,8 @@ def test_fairy(registry, xml_parent, data): This plugin helps you to upload Android APKs or iOS IPA files to www.testfairy.com. - Requires the Jenkins :jenkins-wiki:`Test Fairy Plugin - <TestFairy+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Test Fairy Plugin + <TestFairy>`. :arg str platform: Select platform to upload to, **android** or **ios** (required) @@ -3962,8 +4010,8 @@ def text_finder(registry, xml_parent, data): This plugin lets you search keywords in the files you specified and additionally check build status - Requires the Jenkins :jenkins-wiki:`Text-finder Plugin - <Text-finder+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Text-finder Plugin + <text-finder>`. :arg str regexp: Specify a regular expression (required) :arg str fileset: Specify the path to search (optional) @@ -4000,8 +4048,8 @@ def html_publisher(registry, xml_parent, data): """yaml: html-publisher This plugin publishes HTML reports. - Requires the Jenkins :jenkins-wiki:`HTML Publisher Plugin - <HTML+Publisher+Plugin>`. + Requires the Jenkins :jenkins-plugins:`HTML Publisher Plugin + <htmlpublisher>`. :arg str name: Report name (required) :arg str dir: HTML directory to archive (required) @@ -4040,8 +4088,8 @@ def rich_text_publisher(registry, xml_parent, data): This plugin puts custom rich text message to the Build pages and Job main page. - Requires the Jenkins :jenkins-wiki:`Rich Text Publisher Plugin - <Rich+Text+Publisher+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Rich Text Publisher Plugin + <rich-text-publisher-plugin>`. :arg str stable-text: The stable text (required) :arg str unstable-text: The unstable text if different from stable @@ -4087,7 +4135,7 @@ def tap(registry, xml_parent, data): """yaml: tap Adds support to TAP test result files - Requires the Jenkins :jenkins-wiki:`TAP Plugin <TAP+Plugin>`. + Requires the Jenkins :jenkins-plugins:`TAP Plugin <tap>`. :arg str results: TAP test result files (required) :arg bool fail-if-no-results: Fail if no result (default false) @@ -4141,8 +4189,8 @@ def post_tasks(registry, xml_parent, data): """yaml: post-tasks Adds support to post build task plugin - Requires the Jenkins :jenkins-wiki:`Post Build Task plugin - <Post+build+task>`. + Requires the Jenkins :jenkins-plugins:`Post Build Task plugin + <postbuild-task>`. :arg dict task: Post build task definition :arg list task[matches]: list of matches when to run the task @@ -4196,8 +4244,8 @@ def postbuildscript(registry, xml_parent, data): Executes additional builders, script or Groovy after the build is complete. - Requires the Jenkins :jenkins-wiki:`Post Build Script plugin - <PostBuildScript+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Post Build Script plugin + <postbuildscript>`. :arg list generic-script: Series of Batch/Shell scripts to to run @@ -4460,8 +4508,8 @@ def xml_summary(registry, xml_parent, data): """yaml: xml-summary Adds support for the Summary Display Plugin - Requires the Jenkins :jenkins-wiki:`Summary Display Plugin - <Summary+Display+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Summary Display Plugin + <summary_report>`. :arg str files: Files to parse (required) :arg bool shown-on-project-page: Display summary on project page @@ -4495,8 +4543,7 @@ def robot(registry, xml_parent, data): """yaml: robot Adds support for the Robot Framework Plugin - Requires the Jenkins :jenkins-wiki:`Robot Framework Plugin - <Robot+Framework+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Robot Framework Plugin <robot>`. :arg str output-path: Path to directory containing robot xml and html files relative to build workspace. (required) @@ -4555,8 +4602,8 @@ def robot(registry, xml_parent, data): def warnings(registry, xml_parent, data): """yaml: warnings Generate trend report for compiler warnings in the console log or - in log files. Requires the Jenkins :jenkins-wiki:`Warnings Plugin - <Warnings+Plugin>`. + in log files. Requires the Jenkins :jenkins-plugins:`Warnings Plugin + <warnings>`. :arg list console-log-parsers: The parser to use to scan the console log (default '') @@ -4754,7 +4801,7 @@ def sloccount(registry, xml_parent, data): r"""yaml: sloccount Generates the trend report for SLOCCount - Requires the Jenkins :jenkins-wiki:`SLOCCount Plugin <SLOCCount+Plugin>`. + Requires the Jenkins :jenkins-plugins:`SLOCCount Plugin <sloccount>`. :arg str report-files: Setting that specifies the generated raw SLOCCount report files. Be sure not to include any non-report files @@ -4798,9 +4845,9 @@ def ircbot(registry, xml_parent, data): ircbot enables Jenkins to send build notifications via IRC and lets you interact with Jenkins via an IRC bot. - Requires the Jenkins :jenkins-wiki:`IRC Plugin <IRC+Plugin>`. + Requires the Jenkins :jenkins-plugins:`IRC Plugin <ircbot>`. - :arg string strategy: When to send notifications + :arg str strategy: When to send notifications :strategy values: * **all** always (default) @@ -4819,7 +4866,7 @@ def ircbot(registry, xml_parent, data): (default false) :arg bool notify-fixers: Whether to send notifications to the users that have fixed a broken build (default false) - :arg string message-type: Channel Notification Message. + :arg str message-type: Channel Notification Message. :message-type values: * **summary-scm** for summary and SCM changes (default) @@ -4837,7 +4884,7 @@ def ircbot(registry, xml_parent, data): * **password** (`str`) Channel password (optional) * **notify-only** (`bool`) Set to true if you want to disallow bot commands (default false) - :arg string matrix-notifier: notify for matrix projects + :arg str matrix-notifier: notify for matrix projects instant-messaging-plugin injects an additional field in the configuration form whenever the project is a multi-configuration project @@ -4911,7 +4958,7 @@ def plot(registry, xml_parent, data): """yaml: plot Plot provides generic plotting (or graphing). - Requires the Jenkins :jenkins-wiki:`Plot Plugin <Plot+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Plot Plugin <plot>`. :arg str title: title for the graph (default '') :arg str yaxis: title of Y axis (default '') @@ -5081,7 +5128,7 @@ def git(registry, xml_parent, data): push merge results, tags, and/or branches to remote repositories after the job completes. - Requires the Jenkins :jenkins-wiki:`Git Plugin <Git+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Git Plugin <git>`. :arg bool push-merge: push merges back to the origin specified in the pre-build merge options (default false) @@ -5195,7 +5242,7 @@ def git(registry, xml_parent, data): def github_notifier(registry, xml_parent, data): """yaml: github-notifier Set build status on Github commit. - Requires the Jenkins :jenkins-wiki:`Github Plugin <GitHub+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Github Plugin <github>`. Example: @@ -5208,7 +5255,7 @@ def github_notifier(registry, xml_parent, data): def gitlab_notifier(registry, xml_parent, data): """yaml: gitlab-notifier Set build status on GitLab commit. - Requires the Jenkins :jenkins-wiki:`GitLab Plugin <GitLab+Plugin>`. + Requires the Jenkins :jenkins-plugins:`GitLab Plugin <gitlab-plugin>`. :arg str name: The name of the build in GitLab. With this you can distinguish different Jenkins jobs for the same commit in GitLab. @@ -5242,7 +5289,7 @@ def gitlab_notifier(registry, xml_parent, data): def gitlab_vote(registry, xml_parent, data): """yaml: gitlab-vote Set vote for build status on GitLab merge request. - Requires the Jenkins :jenkins-wiki:`GitLab Plugin <GitLab+Plugin>`. + Requires the Jenkins :jenkins-plugins:`GitLab Plugin <gitlab-plugin>`. Example: @@ -5258,7 +5305,7 @@ def gitlab_vote(registry, xml_parent, data): def gitlab_message(registry, xml_parent, data): """yaml: gitlab-message Add note with build status on GitLab merge request. - Requires the Jenkins :jenkins-wiki:`GitLab Plugin <GitLab+Plugin>`. + Requires the Jenkins :jenkins-plugins:`GitLab Plugin <gitlab-plugin>`. :arg bool failure-only: make a comment only on failure (default false) :arg bool success-note: make a comment on GitLab Merge Request @@ -5310,7 +5357,7 @@ def gitlab_message(registry, xml_parent, data): def zulip(registry, xml_parent, data): """yaml: zulip Set build status on zulip. - Requires the Jenkins :jenkins-wiki:`Humbug Plugin <Humbug+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Humbug Plugin <humbug>`. Example: @@ -5325,8 +5372,8 @@ def build_publisher(registry, xml_parent, data): This plugin allows records from one Jenkins to be published on another Jenkins. - Requires the Jenkins :jenkins-wiki:`Build Publisher Plugin - <Build+Publisher+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Build Publisher Plugin + <build-publisher>`. :arg bool publish-unstable-builds: publish unstable builds (default true) :arg bool publish-failed-builds: publish failed builds (default true) @@ -5371,18 +5418,18 @@ def build_publisher(registry, xml_parent, data): def stash(registry, xml_parent, data): """yaml: stash - This plugin will configure the Jenkins Stash Notifier plugin to - notify Atlassian Stash after job completes. + This plugin will configure the Jenkins BitBucket Server Notifier plugin to + notify Atlassian BitBucket after job completes. - Requires the Jenkins :jenkins-wiki:`StashNotifier Plugin - <StashNotifier+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Bitbucket Server Notifier Plugin + <stashNotifier>`. - :arg string url: Base url of Stash Server (default "") - :arg string username: Username of Stash Server (default "") - :arg string password: Password of Stash Server (default "") - :arg string credentials-id: Credentials of Stash Server (optional) + :arg str url: Base url of Stash Server (default "") + :arg str username: Username of Stash Server (default "") + :arg str password: Password of Stash Server (default "") + :arg str credentials-id: Credentials of Stash Server (optional) :arg bool ignore-ssl: Ignore unverified SSL certificate (default false) - :arg string commit-sha1: Commit SHA1 to notify (default "") + :arg str commit-sha1: Commit SHA1 to notify (default "") :arg bool include-build-number: Include build number in key (default false) @@ -5428,8 +5475,8 @@ def dependency_check(registry, xml_parent, data): dependencies and checks if there are any known, publicly disclosed, vulnerabilities. - Requires the Jenkins :jenkins-wiki:`OWASP Dependency-Check Plugin - <OWASP+Dependency-Check+Plugin>`. + Requires the Jenkins :jenkins-plugins:`OWASP Dependency-Check Plugin + <dependency-check-jenkins-plugin>`. :arg str pattern: Report filename pattern (optional) :arg bool can-run-on-failed: Also runs for failed builds, instead of just @@ -5503,8 +5550,8 @@ def description_setter(registry, xml_parent, data): This plugin sets the description for each build, based upon a RegEx test of the build log file. - Requires the Jenkins :jenkins-wiki:`Description Setter Plugin - <Description+Setter+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Description Setter Plugin + <description-setter>`. :arg str regexp: A RegEx which is used to scan the build log file (default '') @@ -5549,7 +5596,7 @@ def doxygen(registry, xml_parent, data): This plugin parses the Doxygen descriptor (Doxyfile) and provides a link to the generated Doxygen documentation. - Requires the Jenkins :jenkins-wiki:`Doxygen Plugin <Doxygen+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Doxygen Plugin <doxygen>`. :arg str doxyfile: The doxyfile path (required) :arg str slave: The node or label to pull the doxygen HTML files from @@ -5594,8 +5641,8 @@ def doxygen(registry, xml_parent, data): def docker_stop_container(registry, xml_parent, data): """yaml: docker-stop-container This plugin allows removing stopped docker containers. - It requires the :jenkins-wiki:`Docker build step plugin - <Docker+build+step+plugin>`. + It requires the :jenkins-plugins:`Docker build step plugin + <docker-build-step>`. :arg bool remove-stopped-containers: Boolean value to remove stopped docker containers (default False) @@ -5623,7 +5670,7 @@ def sitemonitor(registry, xml_parent, data): """yaml: sitemonitor This plugin checks the availability of an url. - It requires the :jenkins-wiki:`sitemonitor plugin <SiteMonitor+Plugin>`. + It requires the :jenkins-plugins:`sitemonitor plugin <sitemonitor>`. :arg list sites: List of URLs to check @@ -5650,7 +5697,8 @@ def testng(registry, xml_parent, data): """yaml: testng This plugin publishes TestNG test reports. - Requires the Jenkins :jenkins-wiki:`TestNG Results Plugin <testng-plugin>`. + Requires the Jenkins :jenkins-plugins:`TestNG Results Plugin + <testng-plugin>`. :arg str pattern: filename pattern to locate the TestNG XML report files (required) @@ -5709,8 +5757,8 @@ def artifact_deployer(registry, xml_parent, data): """yaml: artifact-deployer This plugin makes it possible to copy artifacts to remote locations. - Requires the Jenkins :jenkins-wiki:`ArtifactDeployer Plugin - <ArtifactDeployer+Plugin>`. + Requires the Jenkins :jenkins-plugins:`ArtifactDeployer Plugin + <artifactdeployer>`. :arg list entries: :entries: @@ -5778,7 +5826,7 @@ def s3(registry, xml_parent, data): """yaml: s3 Upload build artifacts to Amazon S3. - Requires the Jenkins :jenkins-wiki:`S3 plugin <S3+Plugin>`. + Requires the Jenkins :jenkins-plugins:`S3 plugin <s3>`. :arg str s3-profile: Globally-defined S3 profile to use :arg bool dont-wait-for-concurrent-builds: Don't wait @@ -5866,8 +5914,8 @@ def ruby_metrics(registry, xml_parent, data): Rcov plugin parses rcov html report files and shows it in Jenkins with a trend graph. - Requires the Jenkins :jenkins-wiki:`Ruby metrics plugin - <RubyMetrics+plugin>`. + Requires the Jenkins :jenkins-plugins:`Ruby metrics plugin + <rubyMetrics>`. :arg str report-dir: Relative path to the coverage report directory :arg dict targets: @@ -5912,7 +5960,7 @@ def fitnesse(registry, xml_parent, data): """yaml: fitnesse Publish Fitnesse test results - Requires the Jenkins :jenkins-wiki:`Fitnesse plugin <Fitnesse+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Fitnesse plugin <fitnesse>`. :arg str results: path specifier for results files @@ -5932,7 +5980,7 @@ def valgrind(registry, xml_parent, data): """yaml: valgrind This plugin publishes Valgrind Memcheck XML results. - Requires the Jenkins :jenkins-wiki:`Valgrind Plugin <Valgrind+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Valgrind Plugin <valgrind>`. :arg str pattern: Filename pattern to locate the Valgrind XML report files (required) @@ -6001,7 +6049,7 @@ def valgrind(registry, xml_parent, data): def pmd(registry, xml_parent, data): """yaml: pmd Publish trend reports with PMD. - Requires the Jenkins :jenkins-wiki:`PMD Plugin <PMD+Plugin>`. + Requires the Jenkins :jenkins-plugins:`PMD Plugin <pmd>`. The PMD component accepts a dictionary with the following values: @@ -6074,15 +6122,15 @@ def scan_build(registry, xml_parent, data): The scan-build report has to be generated in the directory ``${WORKSPACE}/clangScanBuildReports`` for the publisher to find it. - Requires the Jenkins :jenkins-wiki:`Clang Scan-Build Plugin - <Clang+Scan-Build+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Clang Scan-Build Plugin + <clang-scanbuild>`. :arg bool mark-unstable: Mark build as unstable if the number of bugs exceeds a threshold (default false) :arg int threshold: Threshold for marking builds as unstable (default 0) - :arg string exclude-paths: Comma separated paths to exclude from reports + :arg str exclude-paths: Comma separated paths to exclude from reports (>=1.5) (default '') - :arg string report-folder: Folder where generated reports are located + :arg str report-folder: Folder where generated reports are located (>=1.7) (default 'clangScanBuildReports') Full Example: @@ -6113,7 +6161,7 @@ def scan_build(registry, xml_parent, data): def dry(registry, xml_parent, data): """yaml: dry Publish trend reports with DRY. - Requires the Jenkins :jenkins-wiki:`DRY Plugin <DRY+Plugin>`. + Requires the Jenkins :jenkins-plugins:`DRY Plugin <dry>`. The DRY component accepts a dictionary with the following values: @@ -6192,7 +6240,7 @@ def dry(registry, xml_parent, data): def shining_panda(registry, xml_parent, data): """yaml: shining-panda Publish coverage.py results. Requires the Jenkins - :jenkins-wiki:`ShiningPanda Plugin <ShiningPanda+Plugin>`. + :jenkins-plugins:`ShiningPanda Plugin <shiningpanda>`. :arg str html-reports-directory: path to coverage.py html results (optional) @@ -6217,14 +6265,14 @@ def downstream_ext(registry, xml_parent, data): Trigger multiple downstream jobs when a job is completed and condition is met. - Requires the Jenkins :jenkins-wiki:`Downstream-Ext Plugin - <Downstream-Ext+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Downstream-Ext Plugin + <downstream-ext>`. :arg list projects: Projects to build (required) - :arg string condition: comparison condition used for the criteria. + :arg str condition: comparison condition used for the criteria. One of 'equal-or-over', 'equal-or-under', 'equal' (default 'equal-or-over') - :arg string criteria: Trigger downstream job if build results meets + :arg str criteria: Trigger downstream job if build results meets condition. One of 'success', 'unstable', 'failure' or 'aborted' (default 'success') :arg bool only-on-scm-change: Trigger only if downstream project @@ -6281,8 +6329,7 @@ def rundeck(registry, xml_parent, data): """yaml: rundeck Trigger a rundeck job when the build is complete. - Requires the Jenkins :jenkins-wiki:`RunDeck - Plugin <RunDeck+Plugin>`. + Requires the Jenkins :jenkins-plugins:`RunDeck Plugin <rundeck>`. :arg str job-id: The RunDeck job identifier. (required) This could be: @@ -6335,7 +6382,7 @@ def create_publishers(registry, action): def conditional_publisher(registry, xml_parent, data): """yaml: conditional-publisher Conditionally execute some post-build steps. Requires the Jenkins - :jenkins-wiki:`Flexible Publish Plugin <Flexible+Publish+Plugin>`. + :jenkins-plugins:`Flexible Publish Plugin <flexible-publish>`. A Flexible Publish list of Conditional Actions is created in Jenkins. @@ -6500,6 +6547,12 @@ def conditional_publisher(registry, xml_parent, data): for edited_node in create_publishers(registry, action): if not use_publisher_list: edited_node.set("class", edited_node.tag) + # sort attributes alphabetically + attrib = edited_node.attrib + if len(attrib) > 1: + attribs = sorted(attrib.items()) + attrib.clear() + attrib.update(attribs) edited_node.tag = "publisher" parent.append(edited_node) @@ -6582,7 +6635,7 @@ def conditional_publisher(registry, xml_parent, data): def scoverage(registry, xml_parent, data): """yaml: scoverage Publish scoverage results as a trend graph. - Requires the Jenkins :jenkins-wiki:`Scoverage Plugin <Scoverage+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Scoverage Plugin <scoverage>`. :arg str report-directory: This is a directory that specifies the locations where the xml scoverage report is generated (required) @@ -6609,8 +6662,8 @@ def scoverage(registry, xml_parent, data): def display_upstream_changes(registry, xml_parent, data): """yaml: display-upstream-changes Display SCM changes of upstream jobs. Requires the Jenkins - :jenkins-wiki:`Display Upstream Changes Plugin - <Display+Upstream+Changes+Plugin>`. + :jenkins-plugins:`Display Upstream Changes Plugin + <display-upstream-changes>`. Example: @@ -6626,7 +6679,7 @@ def display_upstream_changes(registry, xml_parent, data): def gatling(registry, xml_parent, data): """yaml: gatling Publish gatling results as a trend graph - Requires the Jenkins :jenkins-wiki:`Gatling Plugin <Gatling+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Gatling Plugin <gatling>`. Example: @@ -6642,7 +6695,7 @@ def logstash(registry, xml_parent, data): """yaml: logstash Send job's console log to Logstash for processing and analyis of your job data. Also stores test metrics from Junit. - Requires the Jenkins :jenkins-wiki:`Logstash Plugin <Logstash+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Logstash Plugin <logstash>`. :arg int max-lines: The maximum number of log lines to send to Logstash. (default 1000) @@ -6670,7 +6723,7 @@ def logstash(registry, xml_parent, data): def image_gallery(registry, xml_parent, data): """yaml: image-gallery Produce an image gallery using Javascript library. Requires the Jenkins - :jenkins-wiki:`Image Gallery Plugin<Image+Gallery+Plugin>`. + :jenkins-plugins:`Image Gallery Plugin <image-gallery>`. :arg str gallery-type: @@ -6740,7 +6793,7 @@ def image_gallery(registry, xml_parent, data): def naginator(registry, xml_parent, data): """yaml: naginator Automatically reschedule a build after a build failure - Requires the Jenkins :jenkins-wiki:`Naginator Plugin <Naginator+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Naginator Plugin <naginator>`. :arg bool rerun-unstable-builds: Rerun build for unstable builds as well as failures (default false) @@ -6815,8 +6868,8 @@ def disable_failed_job(registry, xml_parent, data): """yaml: disable-failed-job Automatically disable failed jobs. - Requires the Jenkins :jenkins-wiki:`Disable Failed Job Plugin - <Disable+Failed+Job+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Disable Failed Job Plugin + <disable-failed-job>`. :arg str when-to-disable: The condition to disable the job. (required) Possible values are @@ -6858,8 +6911,8 @@ def disable_failed_job(registry, xml_parent, data): def google_cloud_storage(registry, xml_parent, data): """yaml: google-cloud-storage Upload build artifacts to Google Cloud Storage. Requires the - Jenkins :jenkins-wiki:`Google Cloud Storage plugin - <Google+Cloud+Storage+Plugin>`. + Jenkins :jenkins-plugins:`Google Cloud Storage plugin + <google-storage-plugin>`. Apart from the Google Cloud Storage Plugin itself, installation of Google OAuth Credentials and addition of required credentials to Jenkins is @@ -7041,8 +7094,8 @@ def flowdock(registry, xml_parent, data): """yaml: flowdock This plugin publishes job build results to a Flowdock flow. - Requires the Jenkins :jenkins-wiki:`Flowdock Plugin - <Flowdock+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Flowdock Plugin + <jenkins-flowdock-plugin>`. :arg str token: API token for the targeted flow. (required) @@ -7110,7 +7163,7 @@ def flowdock(registry, xml_parent, data): def clamav(registry, xml_parent, data): """yaml: clamav Check files with ClamAV, an open source antivirus engine. - Requires the Jenkins :jenkins-wiki:`ClamAV Plugin <ClamAV+Plugin>`. + Requires the Jenkins :jenkins-plugins:`ClamAV Plugin <clamav>`. :arg str includes: Comma separated list of files that should be scanned. Must be set for ClamAV to check for artifacts. (default '') @@ -7138,8 +7191,8 @@ def testselector(registry, xml_parent, data): """yaml: testselector This plugin allows you to choose specific tests you want to run. - Requires the Jenkins :jenkins-wiki:`Tests Selector Plugin - <Tests+Selector+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Tests Selector Plugin + <selected-tests-executor>`. :arg str name: Environment variable in which selected tests are saved (required) @@ -7184,8 +7237,8 @@ def testselector(registry, xml_parent, data): def cloudformation(registry, xml_parent, data): """yaml: cloudformation Create cloudformation stacks before running a build and optionally - delete them at the end. Requires the Jenkins :jenkins-wiki:`AWS - Cloudformation Plugin <AWS+Cloudformation+Plugin>`. + delete them at the end. Requires the Jenkins :jenkins-plugins:`AWS + Cloudformation Plugin <jenkins-cloudformation-plugin>`. :arg list create-stacks: List of stacks to create @@ -7263,8 +7316,8 @@ def whitesource(registry, xml_parent, data): """yaml: whitesource This plugin brings automatic open source management to Jenkins users. - Requires the Jenkins :jenkins-wiki:`Whitesource Plugin - <Whitesource+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Whitesource Plugin + <whitesource>`. :arg str product-token: Product name or token to update (default '') :arg str version: Product version (default '') @@ -7314,8 +7367,8 @@ def whitesource(registry, xml_parent, data): def hipchat(registry, xml_parent, data): """yaml: hipchat Publisher that sends hipchat notifications on job events - Requires the Jenkins :jenkins-wiki:`Hipchat Plugin - <Hipchat+Plugin>` version >=1.9 + Requires the Jenkins :jenkins-plugins:`Hipchat Plugin + <hipchat>` version >=1.9 Please see documentation for older plugin version https://jenkins-job-builder.readthedocs.io/en/latest/hipchat.html @@ -7372,7 +7425,7 @@ def slack(registry, xml_parent, data): """yaml: slack Publisher that sends slack notifications on job events. - Requires the Jenkins :jenkins-wiki:`Slack Plugin <Slack+Plugin>` + Requires the Jenkins :jenkins-plugins:`Slack Plugin <slack>` When using Slack Plugin version < 2.0, Slack Plugin itself requires a publisher as well as properties please note that you have to create those @@ -7404,7 +7457,7 @@ def slack(registry, xml_parent, data): (>=2.0). (default false) :arg bool notify-failure: Send notification when job fails for the first time (previous build was a success) (>=2.0). (default false) - :arg bool notify-every-failure: Send notification everytime a job fails + :arg bool notify-every-failure: Send notification every time a job fails (>=2.23). (default false) :arg bool notify-back-to-normal: Send notification when job is succeeding again after being unstable or failed (>=2.0). (default false) @@ -7537,10 +7590,10 @@ def slack(registry, xml_parent, data): def phabricator(registry, xml_parent, data): """yaml: phabricator - Integrate with `Phabricator <http://phabricator.org/>`_ + Integrate with `Phabricator <https://www.phacility.com/>`_ - Requires the Jenkins :jenkins-wiki:`Phabricator Plugin - <Phabricator+Differential+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Phabricator Plugin + <phabricator-plugin>`. :arg bool comment-on-success: Post a *comment* when the build succeeds. (optional) @@ -7590,8 +7643,8 @@ def jms_messaging(registry, xml_parent, data): - ActiveMQ - FedMsg - Requires the Jenkins :jenkins-wiki:`JMS Messaging Plugin - Pipeline Plugin <JMS+Messaging+Plugin>`. + Requires the Jenkins :jenkins-plugins:`JMS Messaging Plugin + Pipeline Plugin <jms-messaging>`. :arg str override-topic: If you need to override the default topic. (default '') @@ -7628,8 +7681,9 @@ def openshift_build_canceller(registry, xml_parent, data): for the provided build config; any builds under that build config which are not previously terminated (either successfully or unsuccessfully) or cancelled will be cancelled. - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -7676,8 +7730,9 @@ def openshift_deploy_canceller(registry, xml_parent, data): This action is intended to provide cleanup for any OpenShift deployments left running when the Job completes; this step will allow you to perform the equivalent of a oc deploy --cancel for the provided deployment config. - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str api-url: this would be the value you specify if you leverage the --server option on the OpenShift `oc` command. @@ -7723,8 +7778,9 @@ def github_pull_request_merge(registry, xml_parent, data): """yaml: github-pull-request-merge This action merges the pull request that triggered the build (see the github pull request trigger) - Requires the Jenkins :jenkins-wiki:`GitHub pull request builder plugin - <GitHub+pull+request+builder+plugin>`. + + Requires the Jenkins :jenkins-plugins:`GitHub pull request builder plugin + <ghprb>`. :arg bool only-admins-merge: if `true` only administrators can merge the @@ -7770,8 +7826,8 @@ def chuck_norris(registry, xml_parent, data): """yaml: chuck-norris Displays a picture of Chuck Norris (instead of Jenkins the butler) and a random Chuck Norris 'The Programmer' fact on each build page. - Requires the Jenkins :jenkins-wiki:`ChuckNorris Plugin - <ChuckNorris+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`ChuckNorris Plugin <chucknorris>`. Example: @@ -7788,8 +7844,8 @@ def chuck_norris(registry, xml_parent, data): def publishers_from(registry, xml_parent, data): """yaml: publishers-from Use publishers from another project. - Requires the Jenkins :jenkins-wiki:`Template Project Plugin - <Template+Project+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Template Project Plugin + <template-project>`. :arg str project-name: The name of the other project. @@ -7807,8 +7863,8 @@ def tasks(registry, xml_parent, data): """yaml: tasks Scans the workspace files for open tasks and generates a trend report. - Requires the Jenkins - :jenkins-wiki:`Task Scanner Plugin <Task+Scanner+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Task Scanner Plugin <tasks>`. :arg list files-to-scan: Fileset includes setting that specifies the workspace files to scan for tasks, such as ``**/*.java``. Basedir of @@ -8012,7 +8068,7 @@ def tasks(registry, xml_parent, data): def packer(registry, xml_parent, data): """yaml: packer This plugin allows for a job to publish an image generated Packer - Requires the Jenkins :jenkins-wiki:`Packer Plugin <Packer+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Packer Plugin <packer>`. :arg str name: Name of the packer installation (required) :arg str json-template: Path to a Packer JSON template file (default '') diff --git a/jenkins_jobs/modules/reporters.py b/jenkins_jobs/modules/reporters.py index 5fd5641e..153fa047 100644 --- a/jenkins_jobs/modules/reporters.py +++ b/jenkins_jobs/modules/reporters.py @@ -76,8 +76,7 @@ def findbugs(registry, xml_parent, data): """yaml: findbugs FindBugs reporting for builds - Requires the Jenkins :jenkins-wiki:`FindBugs Plugin - <FindBugs+Plugin>`. + Requires the Jenkins :jenkins-plugins:`FindBugs Plugin <findbugs>`. :arg bool rank-priority: Use rank as priority (default false) :arg str include-files: Comma separated list of files to include. diff --git a/jenkins_jobs/modules/scm.py b/jenkins_jobs/modules/scm.py index 6e7e6291..c594ff20 100644 --- a/jenkins_jobs/modules/scm.py +++ b/jenkins_jobs/modules/scm.py @@ -27,7 +27,7 @@ default with no SCM. The scm module allows referencing multiple repositories in a Jenkins job. Note: Adding more than one scm definition requires the Jenkins -:jenkins-wiki:`Multiple SCMs plugin <Multiple+SCMs+Plugin>`. +:jenkins-plugins:`Multiple SCMs plugin <multiple-scms>`. Example of multiple repositories in a single job: .. literalinclude:: /../../tests/macros/fixtures/scm/multi-scms001.yaml @@ -47,8 +47,9 @@ import jenkins_jobs.modules.helpers as helpers def p4(registry, xml_parent, data): r"""yaml: p4 - Specifies the Perforce (P4) repository for this job - Requires the Jenkins :jenkins-wiki:`P4 Plugin <P4+Plugin>`. + Specifies the Perforce (P4) repository for this job. + + Requires the Jenkins :jenkins-plugins:`P4 Plugin <p4>`. """ scm = XML.SubElement( xml_parent, @@ -171,7 +172,8 @@ def p4_construct_populate(xml_parent, data): def git(registry, xml_parent, data): r"""yaml: git Specifies the git SCM repository for this job. - Requires the Jenkins :jenkins-wiki:`Git Plugin <Git+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Git Plugin <git>`. :arg str url: URL of the git repository :arg str credentials-id: ID of credential to use to connect, which is the @@ -225,17 +227,17 @@ def git(registry, xml_parent, data): * **fisheye** - https://www.atlassian.com/software/fisheye * **gitblit** - http://gitblit.com/ * **githubweb** - https://github.com/ - * **gitiles** - https://code.google.com/p/gitiles/ + * **gitiles** - https://code.google.com/archive/p/gitiles/ * **gitlab** - https://about.gitlab.com/ * **gitlist** - http://gitlist.org/ * **gitoriousweb** - https://gitorious.org/ * **gitweb** - https://git-scm.com/docs/gitweb - * **kiln** - https://www.fogcreek.com/kiln/ + * **kiln** - https://www.fogbugz.com/version-control * **microsoft\-tfs\-2013** - |tfs_2013| - * **phabricator** - http://phabricator.org/ - * **redmineweb** - http://www.redmine.org/ + * **phabricator** - https://www.phacility.com/ + * **redmineweb** - https://www.redmine.org/ * **rhodecode** - https://rhodecode.com/ - * **stash** - https://www.atlassian.com/software/bitbucket/server + * **stash** - https://www.atlassian.com/software/bitbucket/enterprise/data-center * **viewgit** - http://viewgit.fealdia.org/ :arg str browser-url: url for the repository browser (required if browser is not 'auto', no default) @@ -326,7 +328,7 @@ def git(registry, xml_parent, data): .. literalinclude:: /../../tests/scm/fixtures/git001.yaml .. |tfs_2013| replace:: - https://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx + https://azure.microsoft.com/en-us/services/devops/server """ logger = logging.getLogger("%s:git" % __name__) @@ -704,7 +706,8 @@ def git_extensions(xml_parent, data): def cvs(registry, xml_parent, data): """yaml: cvs Specifies the CVS SCM repository for this job. - Requires the Jenkins :jenkins-wiki:`CVS Plugin <CVS+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`CVS Plugin <cvs>`. :arg list repos: List of CVS repositories. (required) @@ -835,7 +838,8 @@ def cvs(registry, xml_parent, data): def repo(registry, xml_parent, data): """yaml: repo Specifies the repo SCM repository for this job. - Requires the Jenkins :jenkins-wiki:`Repo Plugin <Repo+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Repo Plugin <repo>`. :arg str manifest-url: URL of the repo manifest (required) :arg str manifest-branch: The branch of the manifest to use (optional) @@ -916,8 +920,9 @@ def repo(registry, xml_parent, data): def store(registry, xml_parent, data): """yaml: store Specifies the Visualworks Smalltalk Store repository for this job. - Requires the Jenkins :jenkins-wiki:`Visualworks Smalltalk Store Plugin - <Visualworks+Smalltalk+Store+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Visualworks Smalltalk Store Plugin + <visualworks-store>`. :arg str script: name of the Store script to run :arg str repository: name of the Store repository @@ -1121,8 +1126,9 @@ def svn(registry, xml_parent, data): def tfs(registry, xml_parent, data): r"""yaml: tfs Specifies the Team Foundation Server repository for this job. - Requires the Jenkins :jenkins-wiki:`Team Foundation Server Plugin - <Team+Foundation+Server+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Team Foundation Server Plugin + <tfs>`. **NOTE**: TFS Password must be entered manually on the project if a user name is specified. The password will be overwritten with an empty @@ -1225,8 +1231,9 @@ def tfs(registry, xml_parent, data): def workspace(registry, xml_parent, data): """yaml: workspace Specifies the cloned workspace for this job to use as a SCM source. - Requires the Jenkins :jenkins-wiki:`Clone Workspace SCM Plugin - <Clone+Workspace+SCM+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Clone Workspace SCM Plugin + <clone-workspace-scm>`. The job the workspace is cloned from must be configured with an clone-workspace publisher @@ -1262,7 +1269,8 @@ def workspace(registry, xml_parent, data): def hg(self, xml_parent, data): """yaml: hg Specifies the mercurial SCM repository for this job. - Requires the Jenkins :jenkins-wiki:`Mercurial Plugin <Mercurial+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Mercurial Plugin <mercurial>`. :arg str url: URL of the hg repository (required) :arg str credentials-id: ID of credentials to use to connect (optional) @@ -1285,8 +1293,8 @@ def hg(self, xml_parent, data): * **bitbucketweb** - https://bitbucket.org/ * **fisheye** - https://www.atlassian.com/software/fisheye * **googlecode** - https://code.google.com/ - * **hgweb** - https://www.selenic.com/hg/help/hgweb - * **kilnhg** - https://www.fogcreek.com/kiln/ + * **hgweb** - https://www.mercurial-scm.org/repo/hg/help/hgweb + * **kilnhg** - https://www.fogbugz.com/version-control * **rhodecode** - https://rhodecode.com/ (versions >= 1.2) * **rhodecode-pre-1.2.0** - https://rhodecode.com/ (versions < 1.2) @@ -1354,8 +1362,9 @@ def openshift_img_streams(registry, xml_parent, data): OpenShift ImageStreams (which are abstractions of Docker repositories) and SCMs - versions / commit IDs of related artifacts (images vs. programmatics files) - Requires the Jenkins :jenkins-wiki:`OpenShift - Pipeline Plugin <OpenShift+Pipeline+Plugin>`._ + + Requires the Jenkins :jenkins-plugins:`OpenShift Pipeline Plugin + <openshift-pipeline>`. :arg str image-stream-name: The name of the ImageStream is what shows up in the NAME column if you dump all the ImageStream's with the @@ -1405,7 +1414,8 @@ def openshift_img_streams(registry, xml_parent, data): def bzr(registry, xml_parent, data): """yaml: bzr Specifies the bzr SCM repository for this job. - Requires the Jenkins :jenkins-wiki:`Bazaar Plugin <Bazaar+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Bazaar Plugin <bazaar>`. :arg str url: URL of the bzr branch (required) :arg bool clean-tree: Clean up the workspace (using bzr) before pulling @@ -1470,7 +1480,8 @@ def url(registry, xml_parent, data): """yaml: url Watch for changes in, and download an artifact from a particular url. - Requires the Jenkins :jenkins-wiki:`URL SCM <URL+SCM>`. + + Requires the Jenkins :jenkins-plugins:`URL SCM <URLSCM>`. :arg list url-list: List of URLs to watch. (required) :arg bool clear-workspace: If set to true, clear the workspace before @@ -1498,7 +1509,8 @@ def dimensions(registry, xml_parent, data): """yaml: dimensions Specifies the Dimensions SCM repository for this job. - Requires Jenkins :jenkins-wiki:`Dimensions Plugin <Dimensions+Plugin>`. + + Requires Jenkins :jenkins-plugins:`Dimensions Plugin <dimensionsscm>`. :arg str project: Project name of format PRODUCT_ID:PROJECT_NAME (required) :arg str permissions: Default Permissions for updated files @@ -1600,7 +1612,8 @@ def dimensions(registry, xml_parent, data): def accurev(registry, xml_parent, data): """yaml: accurev Specifies the AccuRev SCM repository for this job. - Requires the Jenkins :jenkins-wiki:`AccuRev Plugin <AccuRev+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`AccuRev Plugin <accurev>`. :arg str depot: Depot you want to use for the current job (optional) :arg str stream: Stream where the build will be generated from (optional) diff --git a/jenkins_jobs/modules/triggers.py b/jenkins_jobs/modules/triggers.py index c8b6b715..90f9e2ee 100644 --- a/jenkins_jobs/modules/triggers.py +++ b/jenkins_jobs/modules/triggers.py @@ -244,8 +244,9 @@ def gerrit(registry, xml_parent, data): """yaml: gerrit Trigger on a Gerrit event. - Requires the Jenkins :jenkins-wiki:`Gerrit Trigger Plugin <Gerrit+Trigger>` - version >= 2.6.0. + + Requires the Jenkins :jenkins-plugins:`Gerrit Trigger Plugin + <gerrit-trigger>` version >= 2.6.0. :arg list trigger-on: Events to react on. Please use either the new **trigger-on**, or the old **trigger-on-*** events definitions. You @@ -296,8 +297,8 @@ def gerrit(registry, xml_parent, data): * **approval-category** (`str`) -- Approval (verdict) category (for example 'APRV', 'CRVW', 'VRIF' -- see `Gerrit access control - <http://gerrit.googlecode.com/svn/documentation/2.1/ - access-control.html#categories>`_ + <https://gerrit-review.googlesource.com/Documentation/ + access-control.html#access_categories>`_ * **approval-value** -- Approval value for the comment added. * **comment-added-contains-event** (`dict`) -- Trigger on comment @@ -693,8 +694,8 @@ def dockerhub_notification(registry, xml_parent, data): The job will get triggered when Docker Hub/Registry notifies that Docker image(s) used in this job has been rebuilt. - Requires the Jenkins :jenkins-wiki:`CloudBees Docker Hub Notification - <CloudBees+Docker+Hub+Notification>`. + Requires the Jenkins :jenkins-plugins:`CloudBees Docker Hub Notification + <dockerhub-notification>`. :arg bool referenced-image: Trigger the job based on repositories used by any compatible docker plugin in this job. (default true) @@ -751,7 +752,7 @@ def pollscm(registry, xml_parent, data): .. _cron: - :arg string cron: the polling interval (cron syntax, required) + :arg str cron: the polling interval (cron syntax, required) :arg bool ignore-post-commit-hooks: Ignore changes notified by SCM post-commit hooks. The subversion-plugin supports this since version 1.44. (default false) @@ -812,10 +813,10 @@ def build_content_type( def pollurl(registry, xml_parent, data): """yaml: pollurl Trigger when the HTTP response from a URL changes. - Requires the Jenkins :jenkins-wiki:`URLTrigger Plugin <URLTrigger+Plugin>`. + Requires the Jenkins :jenkins-plugins:`URLTrigger Plugin <urltrigger>`. - :arg string cron: cron syntax of when to run (default '') - :arg string polling-node: Restrict where the polling should run. + :arg str cron: cron syntax of when to run (default '') + :arg str polling-node: Restrict where the polling should run. (optional) :arg list urls: List of URLs to monitor @@ -823,9 +824,9 @@ def pollurl(registry, xml_parent, data): * **proxy** (`bool`) -- Activate the Jenkins proxy (default false) * **timeout** (`int`) -- Connect/read timeout in seconds (default 300) - * **username** (`string`) -- User name for basic authentication + * **username** (`str`) -- User name for basic authentication (optional) - * **password** (`string`) -- Password for basic authentication + * **password** (`str`) -- Password for basic authentication (optional) * **check-status** (`int`) -- Check for a specific HTTP status code (optional) @@ -930,8 +931,8 @@ def jms_messaging(registry, xml_parent, data): - ActiveMQ - FedMsg - Requires the Jenkins :jenkins-wiki:`JMS Messaging Plugin - <JMS+Messaging+Plugin>`. + Requires the Jenkins :jenkins-plugins:`JMS Messaging Plugin + <jms-messaging>`. :arg bool no-squash: true = schedule a new job for every triggering message. (default false) @@ -1009,8 +1010,9 @@ def timed(registry, xml_parent, data): def bitbucket(registry, xml_parent, data): """yaml: bitbucket Trigger a job when bitbucket repository is pushed to. - Requires the Jenkins :jenkins-wiki:`BitBucket Plugin - <BitBucket+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`BitBucket Plugin + <bitbucket>`. Example: @@ -1025,7 +1027,8 @@ def bitbucket(registry, xml_parent, data): def github(registry, xml_parent, data): """yaml: github Trigger a job when github repository is pushed to. - Requires the Jenkins :jenkins-wiki:`GitHub Plugin <GitHub+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`GitHub Plugin <github>`. Example:: @@ -1039,24 +1042,25 @@ def github(registry, xml_parent, data): def github_pull_request(registry, xml_parent, data): """yaml: github-pull-request Build pull requests in github and report results. - Requires the Jenkins :jenkins-wiki:`GitHub Pull Request Builder Plugin - <GitHub+pull+request+builder+plugin>`. + + Requires the Jenkins :jenkins-plugins:`GitHub Pull Request Builder Plugin + <ghprb>`. :arg list admin-list: the users with admin rights (optional) :arg list white-list: users whose pull requests build (optional) :arg list org-list: orgs whose users should be white listed (optional) :arg bool allow-whitelist-orgs-as-admins: members of white listed orgs will have admin rights. (default false) - :arg string cron: cron syntax of when to run (optional) - :arg string trigger-phrase: when filled, commenting this phrase + :arg str cron: cron syntax of when to run (optional) + :arg str trigger-phrase: when filled, commenting this phrase in the pull request will trigger a build (optional) :arg bool only-trigger-phrase: only commenting the trigger phrase in the pull request will trigger a build (default false) - :arg string skip-build-phrase: when filled, adding this phrase to + :arg str skip-build-phrase: when filled, adding this phrase to the pull request title or body will not trigger a build (optional) - :arg string black-list-labels: list of GitHub labels for which the build + :arg str black-list-labels: list of GitHub labels for which the build should not be triggered (optional) - :arg string white-list-labels: list of GitHub labels for which the build + :arg str white-list-labels: list of GitHub labels for which the build should only be triggered. (Leave blank for 'any') (optional) :arg bool github-hooks: use github hook (default false) :arg bool permit-all: build every pull request automatically @@ -1071,29 +1075,29 @@ def github_pull_request(registry, xml_parent, data): allows you to selectively prevent pull requests builds destined for these branches. Supports regular expressions (e.g. 'master', 'feature-.*'). (optional) - :arg string auth-id: the auth id to use (optional) - :arg string build-desc-template: the template for build descriptions in + :arg str auth-id: the auth id to use (optional) + :arg str build-desc-template: the template for build descriptions in jenkins (optional) - :arg string status-context: the context to include on PR status comments + :arg str status-context: the context to include on PR status comments (optional) - :arg string triggered-status: the status message to set when the build has + :arg str triggered-status: the status message to set when the build has been triggered (optional) - :arg string started-status: the status comment to set when the build has + :arg str started-status: the status comment to set when the build has been started (optional) - :arg string status-url: the status URL to set (optional) + :arg str status-url: the status URL to set (optional) :arg bool status-add-test-results: add test result one-liner to status message (optional) - :arg string success-status: the status message to set if the job succeeds + :arg str success-status: the status message to set if the job succeeds (optional) - :arg string failure-status: the status message to set if the job fails + :arg str failure-status: the status message to set if the job fails (optional) - :arg string error-status: the status message to set if the job errors + :arg str error-status: the status message to set if the job errors (optional) - :arg string success-comment: comment to add to the PR on a successful job + :arg str success-comment: comment to add to the PR on a successful job (optional) - :arg string failure-comment: comment to add to the PR on a failed job + :arg str failure-comment: comment to add to the PR on a failed job (optional) - :arg string error-comment: comment to add to the PR on an errored job + :arg str error-comment: comment to add to the PR on an errored job (optional) :arg bool cancel-builds-on-update: cancel existing builds when a PR is updated (optional) @@ -1290,30 +1294,31 @@ def github_pull_request(registry, xml_parent, data): def gitlab_merge_request(registry, xml_parent, data): """yaml: gitlab-merge-request Build merge requests in gitlab and report results. - Requires the Jenkins :jenkins-wiki:`Gitlab MergeRequest Builder Plugin - <Gitlab+Merge+Request+Builder+Plugin>`. - :arg string cron: Cron syntax of when to run (required) - :arg string project-path: Gitlab-relative path to project (required) - :arg string target-branch-regex: Allow execution of this job for certain + Requires the Jenkins :jenkins-plugins:`Gitlab MergeRequest Builder Plugin + <ghprb>`. + + :arg str cron: Cron syntax of when to run (required) + :arg str project-path: Gitlab-relative path to project (required) + :arg str target-branch-regex: Allow execution of this job for certain branches only (default ''). Requires Gitlab MergeRequest Builder Plugin >= 2.0.0 - :arg string use-http-url: Use the HTTP(S) URL to fetch/clone repository + :arg str use-http-url: Use the HTTP(S) URL to fetch/clone repository (default false) - :arg string assignee-filter: Only MRs with this assigned user will + :arg str assignee-filter: Only MRs with this assigned user will trigger the build automatically (default 'jenkins') - :arg string tag-filter: Only MRs with this label will trigger the build + :arg str tag-filter: Only MRs with this label will trigger the build automatically (default 'Build') - :arg string trigger-comment: Force build if this comment is the last + :arg str trigger-comment: Force build if this comment is the last in merge reguest (default '') - :arg string publish-build-progress-messages: Publish build progress + :arg str publish-build-progress-messages: Publish build progress messages (except build failed) (default true) .. deprecated:: 2.0.0 - :arg string auto-close-failed: On failure, auto close the request + :arg str auto-close-failed: On failure, auto close the request (default false) - :arg string auto-merge-passed: On success, auto merge the request + :arg str auto-merge-passed: On success, auto merge the request (default false) Example (version < 2.0.0): @@ -1375,8 +1380,8 @@ def gitlab_merge_request(registry, xml_parent, data): def gitlab(registry, xml_parent, data): """yaml: gitlab Makes Jenkins act like a GitLab CI server. - Requires the Jenkins :jenkins-wiki:`GitLab Plugin - <GitLab+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`GitLab Plugin <gitlab-plugin>`. :arg bool trigger-push: Build on Push Events (default true) :arg bool trigger-merge-request: Build on Merge Request Events (default @@ -1540,8 +1545,9 @@ def build_result(registry, xml_parent, data): """yaml: build-result Configure jobB to monitor jobA build result. A build is scheduled if there is a new build result that matches your criteria (unstable, failure, ...). - Requires the Jenkins :jenkins-wiki:`BuildResultTrigger Plugin - <BuildResultTrigger+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`BuildResultTrigger Plugin + <buildresult-trigger>`. :arg list groups: List groups of jobs and results to monitor for :arg list jobs: The jobs to monitor (required) @@ -1658,8 +1664,9 @@ def reverse(registry, xml_parent, data): def monitor_folders(registry, xml_parent, data): """yaml: monitor-folders Configure Jenkins to monitor folders. - Requires the Jenkins :jenkins-wiki:`Filesystem Trigger Plugin - <FSTrigger+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Filesystem Trigger Plugin + <fstrigger>`. :arg str path: Folder path to poll. (default '') :arg list includes: Fileset includes setting that specifies the list of @@ -1711,8 +1718,8 @@ def monitor_folders(registry, xml_parent, data): def monitor_files(registry, xml_parent, data): """yaml: monitor-files Configure Jenkins to monitor files. - Requires the Jenkins :jenkins-wiki:`Filesystem Trigger Plugin - <FSTrigger+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Filesystem Trigger Plugin + <fstrigger>`. :arg list files: List of files to monitor @@ -1866,9 +1873,10 @@ def monitor_files(registry, xml_parent, data): def ivy(registry, xml_parent, data): """yaml: ivy - Poll with an Ivy script - Requires the Jenkins :jenkins-wiki:`IvyTrigger Plugin - <IvyTrigger+Plugin>`. + Poll with an Ivy script. + + Requires the Jenkins :jenkins-plugins:`IvyTrigger Plugin + <ivytrigger>`. :arg str path: Path of the ivy file. (optional) :arg str settings-path: Ivy Settings Path. (optional) @@ -1911,6 +1919,7 @@ def ivy(registry, xml_parent, data): def script(registry, xml_parent, data): """yaml: script Triggers the job using shell or batch script. + Requires the Jenkins :jenkins-wiki:`ScriptTrigger Plugin <ScriptTrigger+Plugin>`. @@ -1951,6 +1960,7 @@ def script(registry, xml_parent, data): def groovy_script(registry, xml_parent, data): """yaml: groovy-script Triggers the job using a groovy script. + Requires the Jenkins :jenkins-wiki:`ScriptTrigger Plugin <ScriptTrigger+Plugin>`. @@ -2000,8 +2010,9 @@ def groovy_script(registry, xml_parent, data): def rabbitmq(registry, xml_parent, data): """yaml: rabbitmq This plugin triggers build using remote build message in RabbitMQ queue. - Requires the Jenkins :jenkins-wiki:`RabbitMQ Build Trigger Plugin - <RabbitMQ+Build+Trigger+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`RabbitMQ Build Trigger Plugin + <rabbitmq-build-trigger>`. :arg str token: the build token expected in the message queue (required) :arg list filters: list of filters to apply (optional) @@ -2039,8 +2050,8 @@ def rabbitmq(registry, xml_parent, data): def parameterized_timer(parser, xml_parent, data): """yaml: parameterized-timer Trigger builds with parameters at certain times. - Requires the Jenkins :jenkins-wiki:`Parameterized Scheduler Plugin - <Parameterized+Scheduler+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Parameterized Scheduler Plugin + <parameterized-scheduler>`. :arg str cron: cron syntax of when to run and with which parameters (required) @@ -2062,9 +2073,10 @@ def parameterized_timer(parser, xml_parent, data): def jira_changelog(registry, xml_parent, data): """yaml: jira-changelog - Sets up a trigger that listens to JIRA issue changes - Requires the Jenkins :jenkins-wiki:`JIRA Trigger Plugin - <JIRA+Trigger+Plugin>`. + Sets up a trigger that listens to JIRA issue changes. + + Requires the Jenkins :jenkins-plugins:`JIRA Trigger Plugin + <jira-trigger>`. :arg str jql-filter: Must match updated issues to trigger a build. (default '') @@ -2175,8 +2187,9 @@ def jira_changelog(registry, xml_parent, data): def jira_comment_trigger(registry, xml_parent, data): """yaml: jira-comment-trigger Trigger builds when a comment is added to JIRA. - Requires the Jenkins :jenkins-wiki:`JIRA Trigger Plugin - <JIRA+Trigger+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`JIRA Trigger Plugin + <jira-trigger>`. :arg str jql-filter: Must match updated issues to trigger a build. (default '') @@ -2231,8 +2244,9 @@ def jira_comment_trigger(registry, xml_parent, data): def stash_pull_request(registry, xml_parent, data): """yaml: stash-pull-request Trigger builds via Stash/Bitbucket Server Pull Requests. - Requires the Jenkins :jenkins-wiki:`Stash Pull Request Builder Plugin - <Stash+pullrequest+builder+plugin>`. + + Requires the Jenkins :jenkins-plugins:`Stash Pull Request Builder Plugin + <stash-pullrequest-builder>`. :arg str cron: cron syntax of when to run (required) :arg str stash-host: The HTTP or HTTPS URL of the Stash host (NOT ssh). @@ -2305,43 +2319,44 @@ def stash_pull_request(registry, xml_parent, data): def generic_webhook_trigger(registry, xml_parent, data): """yaml: generic-webhook-trigger Generic webhook trigger. Trigger when a set of parameters are submitted. - Requires the Jenkins - :jenkins-wiki:`Generic Webhook Trigger <Generic+Webhook+Trigger+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Generic Webhook Trigger + <generic-webhook-trigger>`. - :arg string token: A token to use to trigger the job. (default '') + :arg str token: A token to use to trigger the job. (default '') :arg bool print-post-content: Print post content in job log. :arg bool print-contrib-var: Print contributed variables in job log. :arg bool silent-response: Avoid responding with information about triggered jobs. - :arg string cause: This will be displayed in any triggered job. - :arg string regex-filter-expression: Regular expression to test on the + :arg str cause: This will be displayed in any triggered job. + :arg str regex-filter-expression: Regular expression to test on the evaluated text specified in regex-filter-text - :arg string regex-filter-text: Text to test for the given + :arg str regex-filter-text: Text to test for the given regexp-filter-expression. :arg list post-content-params: Parameters to use from posted JSON/XML - :post-content-params: * **type** (`string`) -- JSONPath or XPath - * **key** (`string`) -- Variable name - * **value** (`string`) -- Expression to evaluate in POST content. + :post-content-params: * **type** (`str`) -- JSONPath or XPath + * **key** (`str`) -- Variable name + * **value** (`str`) -- Expression to evaluate in POST content. Use JSONPath for JSON or XPath for XML. - * **regex-filter** (`string`) -- Anything in the evaluated value, + * **regex-filter** (`str`) -- Anything in the evaluated value, matching this regular expression, will be removed. (optional) - * **default-value** (`string`) -- This value will be used if + * **default-value** (`str`) -- This value will be used if expression does not match anything. (optional) :arg list request-params: Parameters to use passed in as request arguments - :request-params: * **key** (`string`) -- Name of request parameter - * **regex-filter** (`string`) -- Anything in the evaluated value, + :request-params: * **key** (`str`) -- Name of request parameter + * **regex-filter** (`str`) -- Anything in the evaluated value, matching this regular expression, will be removed. (optional) :arg list header-params: Parameters to use passed in as headers - :header-params: * **key** (`string`) -- Name of request header in + :header-params: * **key** (`str`) -- Name of request header in lowercase. Resulting variable name has '_' instead of '-' characters. - * **regex-filter** (`string`) -- Anything in the evaluated value, + * **regex-filter** (`str`) -- Anything in the evaluated value, matching this regular expression, will be removed. (optional) Example: diff --git a/jenkins_jobs/modules/view_delivery_pipeline.py b/jenkins_jobs/modules/view_delivery_pipeline.py new file mode 100644 index 00000000..fbabe598 --- /dev/null +++ b/jenkins_jobs/modules/view_delivery_pipeline.py @@ -0,0 +1,217 @@ +# Copyright 2020 Openstack Foundation + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +The view delivery pipeline module handles creation of Delivery Pipeline views. +To create a delivery pipeline view specify ``delivery_pipeline`` in the +``view-type`` attribute to the :ref:`view_delivery_pipeline` definition. +Requires the Jenkins :jenkins-plugins:`Delivery Pipeline Plugin +<delivery-pipeline-plugin>`. + +:View Parameters: + * **name** (`str`): The name of the view. + * **view-type** (`str`): The type of view. + * **description** (`str`): A description of the view. (optional) + * **filter-executors** (`bool`): Show only executors that can + execute the included views. (default false) + * **filter-queue** (`bool`): Show only included jobs in builder + queue. (default false) + * **components** (`list`): + * **name** (`str`): Name of the pipeline, usually the name of the + component or product. + * **initial-job** (`str`): First job in the pipeline. + * **final-job** (`str`): Final job to display in the pipeline view + regardless of its downstream jobs. (default '') + * **show-upstream** (`bool`): Whether to show upstream. (default false) + * **regexps** (`list`): + * **regexp** (`str`): Regular expression to find initial jobs. + * **show-upstream** (`bool`): Whether to show upstream. (default false) + * **aggregated-changes-grouping-pattern** (`str`): Group changelog by regex + pattern. (default '') + * **allow-abort** (`bool`): Allow cancelling a running job from the + delivery pipeline view. (default false) + * **allow-manual-triggers** (`bool`): Displays a button in the pipeline + view if a task is manual (Build other projects (manual step)) from Build + Pipeline Plugin. (default false) + * **allow-pipeline-start** (`bool`): Allow starting a new pipeline run from + the delivery pipeline view. (default false) + * **allow-rebuild** (`bool`): Allow rerunning a task from the delivery + pipeline view. (default false) + * **link-relative** (`bool`): Use relative links for jobs in this pipeline + view to allow for easier navigation. (default false) + * **link-to-console-log** (`bool`): Changes behaviour of task link in + delivery pipeline view to go directly to the console log. (default false) + * **max-number-of-visible-pipelines** (`int`): Limits the number of + pipelines shown in the view, regardless of how many pipelines are + configured. A negative value will not enforce a limit. + * **no-of-columns** (`int`): Number of columns used for showing pipelines. + Possible values are 1 (default), 2 and 3. + * **no-of-pipelines** (`int`): Number of pipelines instances shown for each + pipeline. Possible values are numbers from 1 to 50 (default 3). + * **paging-enabled** (`bool`): Enable pagination in normal view, to allow + navigation to older pipeline runs which are not displayed on the first + page. Not available in full screen view. (default false) + * **show-absolute-date-time** (`bool`): Show dates and times as absolute + values instead of as relative to the current time. (default false) + * **show-aggregated-changes** (`bool`): Show an aggregated changelog + between different stages. (default false) + * **show-aggregated-pipeline** (`bool`): Show an aggregated view where each + stage shows the latest version being executed. (default false) + * **show-avatars** (`bool`): Show avatars pictures instead of names of the + people involved in a pipeline instance. (default false) + * **show-changes** (`bool`): Show SCM change log for the first job in the + pipeline. (default false) + * **show-description** (`bool`): Show a build description connected to a + specific pipeline task. (default false) + * **show-promotions** (`bool`): Show promotions from Promoted Builds + Plugin. (default false) + * **show-static-analysis-results** (`bool`): Show different analysis + results from Analysis Collector Plugin. (default false) + * **show-test-results** (`bool`): Show test results as pass/failed/skipped. + (default false) + * **show-total-build-time** (`bool`): Show total build time for a pipeline + run. (default false) + * **sorting** (`str`): How to sort the pipelines in the current view. Only + applicable when multiple pipelines are configured in the same view. + Possible values are 'none' (default), 'title' (sort by title), + 'failed_last_activity' (sort by failed pipelines, then by last activity), + 'last_activity' (sort by last activity). + * **update-interval** (`int`): How often the pipeline view will be updated. + To be specified in seconds. (default 2) + +Minimal Example: + + .. literalinclude:: + /../../tests/views/fixtures/view_delivery_pipeline-minimal.yaml + +Full Example: + + .. literalinclude:: + /../../tests/views/fixtures/view_delivery_pipeline-full.yaml +""" + +import xml.etree.ElementTree as XML +import jenkins_jobs.modules.base +import jenkins_jobs.modules.helpers as helpers + + +class DeliveryPipeline(jenkins_jobs.modules.base.Base): + def root_xml(self, data): + root = XML.Element( + "se.diabol.jenkins.pipeline.DeliveryPipelineView", + {"plugin": "delivery-pipeline-plugin"}, + ) + + # Optional + mapping_optional = [ + ("description", "description", None), + ("filter-executors", "filterExecutors", False), + ("filter-queue", "filterQueue", False), + ] + helpers.convert_mapping_to_xml( + root, data, mapping_optional, fail_required=False + ) + + # Required - simple + mapping = [ + ( + "aggregated-changes-grouping-pattern", + "aggregatedChangesGroupingPattern", + "", + ), + ("allow-abort", "allowAbort", False), + ("allow-manual-triggers", "allowManualTriggers", False), + ("allow-pipeline-start", "allowPipelineStart", False), + ("allow-rebuild", "allowRebuild", False), + ("link-relative", "linkRelative", False), + ("link-to-console-log", "linkToConsoleLog", False), + ("max-number-of-visible-pipelines", "maxNumberOfVisiblePipelines", -1), + ("name", "name", None), + ("no-of-columns", "noOfColumns", 1, [1, 2, 3]), + ("no-of-pipelines", "noOfPipelines", 3, list(range(51))), + ("paging-enabled", "pagingEnabled", False), + ("show-absolute-date-time", "showAbsoluteDateTime", False), + ("show-aggregated-changes", "showAggregatedChanges", False), + ("show-aggregated-pipeline", "showAggregatedPipeline", False), + ("show-avatars", "showAvatars", False), + ("show-changes", "showChanges", False), + ("show-description", "showDescription", False), + ("show-promotions", "showPromotions", False), + ("show-static-analysis-results", "showStaticAnalysisResults", False), + ("show-test-results", "showTestResults", False), + ("show-total-build-time", "showTotalBuildTime", False), + ("update-interval", "updateInterval", 2), + ] + helpers.convert_mapping_to_xml(root, data, mapping, fail_required=True) + + # Required - complex + sorting_val = data.get("sorting", "none") + sorting_map = { + "none": "None", + "title": ("se.diabol.jenkins.pipeline.sort.NameComparator"), + "failed_last_activity": ( + "se.diabol.jenkins.pipeline.sort.FailedJobComparator" + ), + "last_activity": ( + "se.diabol.jenkins.pipeline.sort.LatestActivityComparator" + ), + } + sorting = XML.SubElement(root, "sorting") + + if sorting_val in sorting_map: + sorting.text = sorting_map[sorting_val] + else: + sorting.text = sorting_map["none"] + + components = data.get("components", []) + + if len(components): + component_specs = XML.SubElement(root, "componentSpecs") + + for c in components: + component_spec = XML.SubElement( + component_specs, + "se.diabol.jenkins.pipeline.DeliveryPipelineView_-ComponentSpec", + ) + + name = XML.SubElement(component_spec, "name") + name.text = c.get("name", "") + + first_job = XML.SubElement(component_spec, "firstJob") + first_job.text = c.get("initial-job", "") + + last_job = XML.SubElement(component_spec, "lastJob") + last_job.text = c.get("final-job", "") + + show_upstream = XML.SubElement(component_spec, "showUpstream") + show_upstream.text = c.get("show-upstream", "false") + + regexps = data.get("regexps", []) + + if len(regexps): + regexp_first_jobs = XML.SubElement(root, "regexpFirstJobs") + + for r in regexps: + regexp_first_job = XML.SubElement( + regexp_first_jobs, + "se.diabol.jenkins.pipeline.DeliveryPipelineView_-RegExpSpec", + ) + + regexp = XML.SubElement(regexp_first_job, "regexp") + regexp.text = r.get("regexp", "") + + show_upstream = XML.SubElement(regexp_first_job, "showUpstream") + show_upstream.text = r.get("show-upstream", "false") + + return root diff --git a/jenkins_jobs/modules/view_list.py b/jenkins_jobs/modules/view_list.py index 8ad7658c..5c1e1e5f 100644 --- a/jenkins_jobs/modules/view_list.py +++ b/jenkins_jobs/modules/view_list.py @@ -28,7 +28,7 @@ to the :ref:`view_list` definition. queue. (default false) * **job-name** (`list`): List of jobs to be included. * **job-filters** (`dict`): Job filters to be included. Requires - :jenkins-wiki:`View Job Filters <View+Job+Filters>` + :jenkins-plugins:`View Job Filters <view-job-filters>` * **most-recent** (`dict`) :most-recent: diff --git a/jenkins_jobs/modules/view_pipeline.py b/jenkins_jobs/modules/view_pipeline.py index 3ec25b10..a8b58ebc 100644 --- a/jenkins_jobs/modules/view_pipeline.py +++ b/jenkins_jobs/modules/view_pipeline.py @@ -16,8 +16,9 @@ The view pipeline module handles creating Jenkins Build Pipeline views. To create a pipeline view specify ``pipeline`` in the ``view-type`` attribute to the :ref:`view_pipeline` definition. -Requires the Jenkins -:jenkins-wiki:`Build Pipeline Plugin <build+pipeline+plugin>`. + +Requires the Jenkins :jenkins-plugins:`Build Pipeline Plugin +<build-pipeline-plugin>`. :View Parameters: * **name** (`str`): The name of the view. diff --git a/jenkins_jobs/modules/wrappers.py b/jenkins_jobs/modules/wrappers.py index 26de754c..77230c8e 100644 --- a/jenkins_jobs/modules/wrappers.py +++ b/jenkins_jobs/modules/wrappers.py @@ -42,8 +42,9 @@ def docker_custom_build_env(registry, xml_parent, data): """yaml: docker-custom-build-env Allows the definition of a build environment for a job using a Docker container. - Requires the Jenkins :jenkins-wiki:`CloudBees Docker Custom Build - Environment Plugin<CloudBees+Docker+Custom+Build+Environment+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`CloudBees Docker Custom Build + Environment Plugin<docker-custom-build-environment>`. :arg str image-type: Docker image type. Valid values and their additional attributes described in the image_types_ table @@ -168,7 +169,8 @@ def ci_skip(registry, xml_parent, data): Skip making a build for certain push. Just add [ci skip] into your commit's message to let Jenkins know, that you do not want to perform build for the next push. - Requires the Jenkins :jenkins-wiki:`Ci Skip Plugin <Ci+Skip+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Ci Skip Plugin <ci-skip>`. Example: @@ -194,8 +196,9 @@ def config_file_provider(registry, 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>`. + + Requires the Jenkins :jenkins-plugins:`Config File Provider Plugin + <config-file-provider>`. :arg list files: List of managed config files made up of three parameters @@ -231,8 +234,9 @@ def config_file_provider(registry, xml_parent, data): def logfilesize(registry, xml_parent, data): """yaml: logfilesize Abort the build if its logfile becomes too big. - Requires the Jenkins :jenkins-wiki:`Logfilesizechecker Plugin - <Logfilesizechecker+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Logfilesizechecker Plugin + <logfilesizechecker>`. :arg bool set-own: Use job specific maximum log size instead of global config value (default false). @@ -265,8 +269,9 @@ def logfilesize(registry, xml_parent, data): def timeout(registry, xml_parent, data): """yaml: timeout Abort the build if it runs too long. - Requires the Jenkins :jenkins-wiki:`Build Timeout Plugin - <Build-timeout+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Build Timeout Plugin + <build-timeout>`. :arg bool fail: Mark the build as failed (default false) :arg bool abort: Mark the build as aborted (default false) @@ -479,7 +484,8 @@ def timeout(registry, xml_parent, data): def timestamps(registry, xml_parent, data): """yaml: timestamps Add timestamps to the console log. - Requires the Jenkins :jenkins-wiki:`Timestamper Plugin <Timestamper>`. + + Requires the Jenkins :jenkins-plugins:`Timestamper Plugin <timestamper>`. Example:: @@ -492,9 +498,10 @@ def timestamps(registry, xml_parent, data): def ansicolor(registry, xml_parent, data): """yaml: ansicolor Translate ANSI color codes to HTML in the console log. - Requires the Jenkins :jenkins-wiki:`Ansi Color Plugin <AnsiColor+Plugin>`. - :arg string colormap: Color mapping to use (default xterm) + Requires the Jenkins :jenkins-plugins:`Ansi Color Plugin <ansicolor>`. + + :arg str colormap: Color mapping to use (default xterm) Minimal Example: @@ -518,8 +525,9 @@ def ansicolor(registry, xml_parent, data): def build_keeper(registry, xml_parent, data): """yaml: build-keeper Keep builds based on specific policy. - Requires the Jenkins :jenkins-wiki:`Build Keeper Plugin - <Build+Keeper+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Build Keeper Plugin + <build-keeper-plugin>`. :arg str policy: Policy to keep builds. @@ -790,8 +798,9 @@ def build_keeper(registry, xml_parent, data): def live_screenshot(registry, xml_parent, data): """yaml: live-screenshot Show live screenshots of running jobs in the job list. - Requires the Jenkins :jenkins-wiki:`Live-Screenshot Plugin - <LiveScreenshot+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Live-Screenshot Plugin + <livescreenshot>`. :arg str full-size: name of screenshot file (default 'screenshot.png') :arg str thumbnail: name of thumbnail file (default 'screenshot-thumb.png') @@ -822,8 +831,9 @@ def live_screenshot(registry, xml_parent, data): def mask_passwords(registry, xml_parent, data): """yaml: mask-passwords Hide passwords in the console log. - Requires the Jenkins :jenkins-wiki:`Mask Passwords Plugin - <Mask+Passwords+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Mask Passwords Plugin + <mask-passwords>`. Example:: @@ -839,8 +849,8 @@ def mask_passwords(registry, xml_parent, data): def workspace_cleanup(registry, xml_parent, data): """yaml: workspace-cleanup (pre-build) - Requires the Jenkins :jenkins-wiki:`Workspace Cleanup Plugin - <Workspace+Cleanup+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Workspace Cleanup Plugin + <ws-cleanup>`. The post-build workspace-cleanup is available as a publisher. @@ -894,9 +904,10 @@ def workspace_cleanup(registry, xml_parent, data): def m2_repository_cleanup(registry, xml_parent, data): """yaml: m2-repository-cleanup - Configure M2 Repository Cleanup - Requires the Jenkins :jenkins-wiki:`M2 Repository Cleanup - <M2+Repository+Cleanup+Plugin>`. + Configure M2 Repository Cleanup. + + Requires the Jenkins :jenkins-plugins:`M2 Repository Cleanup + <maven-repo-cleaner>`. :arg list patterns: List of patterns for artifacts to cleanup before building. (optional) @@ -922,8 +933,9 @@ def m2_repository_cleanup(registry, xml_parent, data): def rvm_env(registry, xml_parent, data): """yaml: rvm-env - Set the RVM implementation - Requires the Jenkins :jenkins-wiki:`Rvm Plugin <RVM+Plugin>`. + Set the RVM implementation. + + Requires the Jenkins :jenkins-plugins:`Rvm Plugin <rvm>`. :arg str implementation: Type of implementation. Syntax is RUBY[@GEMSET], such as '1.9.3' or 'jruby@foo'. @@ -962,7 +974,8 @@ def rvm_env(registry, xml_parent, data): def rbenv(registry, xml_parent, data): """yaml: rbenv Set the rbenv implementation. - Requires the Jenkins :jenkins-wiki:`rbenv plugin <rbenv+plugin>`. + + Requires the Jenkins :jenkins-plugins:`rbenv plugin <rbenv>`. All parameters are optional. @@ -990,7 +1003,7 @@ def rbenv(registry, xml_parent, data): ro_class = "Jenkins::Tasks::BuildWrapperProxy" ro = XML.SubElement( - rpo, "ruby-object", {"ruby-class": ro_class, "pluginid": "rbenv"} + rpo, "ruby-object", {"pluginid": "rbenv", "ruby-class": ro_class} ) XML.SubElement( @@ -998,7 +1011,7 @@ def rbenv(registry, xml_parent, data): ).text = "rbenv" o = XML.SubElement( - ro, "object", {"ruby-class": "RbenvWrapper", "pluginid": "rbenv"} + ro, "object", {"pluginid": "rbenv", "ruby-class": "RbenvWrapper"} ) mapping = [ @@ -1020,8 +1033,8 @@ def rbenv(registry, xml_parent, data): for elem in mapping: (optname, xmlname, val) = elem[:3] elem_tag = o.find(xmlname) - elem_tag.set("ruby-class", "String") elem_tag.set("pluginid", "rbenv") + elem_tag.set("ruby-class", "String") ignore_local_class = "FalseClass" @@ -1033,15 +1046,16 @@ def rbenv(registry, xml_parent, data): XML.SubElement( o, "ignore__local__version", - {"ruby-class": ignore_local_class, "pluginid": "rbenv"}, + {"pluginid": "rbenv", "ruby-class": ignore_local_class}, ) def build_name(registry, xml_parent, data): """yaml: build-name - Set the name of the build - Requires the Jenkins :jenkins-wiki:`Build Name Setter Plugin - <Build+Name+Setter+Plugin>`. + Set the name of the build. + + Requires the Jenkins :jenkins-plugins:`Build Name Setter Plugin + <build-name-setter>`. :arg str name: Name for the build. Typically you would use a variable from Jenkins in the name. The syntax would be ${FOO} for @@ -1062,9 +1076,10 @@ def build_name(registry, xml_parent, data): def port_allocator(registry, xml_parent, data): """yaml: port-allocator - Assign unique TCP port numbers - Requires the Jenkins :jenkins-wiki:`Port Allocator Plugin - <Port+Allocator+Plugin>`. + Assign unique TCP port numbers. + + Requires the Jenkins :jenkins-plugins:`Port Allocator Plugin + <port-allocator>`. :arg str name: Deprecated, use names instead :arg list names: Variable list of names of the port or list of @@ -1095,6 +1110,7 @@ def port_allocator(registry, xml_parent, data): def locks(registry, xml_parent, data): """yaml: locks Control parallel execution of jobs. + Requires the Jenkins :jenkins-wiki:`Locks and Latches Plugin <Locks+and+Latches+plugin>`. @@ -1118,7 +1134,8 @@ def locks(registry, xml_parent, data): def copy_to_slave(registry, xml_parent, data): """yaml: copy-to-slave - Copy files to slave before build + Copy files to slave before build. + Requires the Jenkins :jenkins-wiki:`Copy To Slave Plugin <Copy+To+Slave+Plugin>`. @@ -1160,8 +1177,9 @@ def copy_to_slave(registry, xml_parent, data): def inject(registry, xml_parent, data): """yaml: inject - Add or override environment variables to the whole build process - Requires the Jenkins :jenkins-wiki:`EnvInject Plugin <EnvInject+Plugin>`. + Add or override environment variables to the whole build process. + + Requires the Jenkins :jenkins-plugins:`EnvInject Plugin <envinject>`. :arg str properties-file: path to the properties file (optional) :arg str properties-content: key value pair of properties (optional) @@ -1201,8 +1219,9 @@ def inject(registry, xml_parent, data): def inject_ownership_variables(registry, xml_parent, data): """yaml: inject-ownership-variables Inject ownership variables to the build as environment variables. - Requires the Jenkins :jenkins-wiki:`EnvInject Plugin <EnvInject+Plugin>` - and Jenkins :jenkins-wiki:`Ownership plugin <Ownership+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`EnvInject Plugin <envinject>` + and Jenkins :jenkins-plugins:`Ownership plugin <ownership>`. :arg bool job-variables: inject job ownership variables to the job (default false) @@ -1228,7 +1247,8 @@ def inject_ownership_variables(registry, xml_parent, data): def inject_passwords(registry, xml_parent, data): """yaml: inject-passwords Inject passwords to the build as environment variables. - Requires the Jenkins :jenkins-wiki:`EnvInject Plugin <EnvInject+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`EnvInject Plugin <envinject>`. :arg bool global: inject global passwords to the job :arg bool mask-password-params: mask password parameters @@ -1264,8 +1284,8 @@ def vault_secrets(registry, xml_parent, data): Secrets are generally masked in the build log. - Requires the Jenkins - :jenkins-wiki:`HashiCorp Vault Plugin <HashiCorp+Vault+Plugin>`. + Requires the Jenkins :jenkins-plugins:`HashiCorp Vault Plugin + <hashicorp-vault-plugin>`. :arg str vault-url: Vault URL :arg str credentials-id: Vault Credential @@ -1332,9 +1352,9 @@ def vault_secrets(registry, xml_parent, data): def env_file(registry, xml_parent, data): """yaml: env-file - Add or override environment variables to the whole build process - Requires the Jenkins :jenkins-wiki:`Environment File Plugin - <Envfile+Plugin>`. + Add or override environment variables to the whole build process. + + Requires the Jenkins :jenkins-plugins:`Environment File Plugin <envfile>`. :arg str properties-file: path to the properties file (optional) @@ -1352,8 +1372,9 @@ def env_file(registry, xml_parent, data): def env_script(registry, xml_parent, data): """yaml: env-script Add or override environment variables to the whole build process. - Requires the Jenkins :jenkins-wiki:`Environment Script Plugin - <Environment+Script+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Environment Script Plugin + <environment-script>`. :arg script-content: The script to run (default '') :arg str script-type: The script type. @@ -1389,7 +1410,8 @@ def jclouds(registry, xml_parent, data): """yaml: jclouds Uses JClouds to provide slave launching on most of the currently usable Cloud infrastructures. - Requires the Jenkins :jenkins-wiki:`JClouds Plugin <JClouds+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`JClouds Plugin <jclouds-jenkins>`. :arg bool single-use: Whether or not to terminate the slave after use (default false). @@ -1434,8 +1456,10 @@ def jclouds(registry, xml_parent, data): def openstack(registry, xml_parent, data): """yaml: openstack - Provision slaves from OpenStack on demand. Requires the Jenkins - :jenkins-wiki:`Openstack Cloud Plugin <Openstack+Cloud+Plugin>`. + Provision slaves from OpenStack on demand. + + Requires the Jenkins :jenkins-plugins:`Openstack Cloud Plugin + <openstack-cloud>`. :arg list instances: List of instances to be launched at the beginning of the build. @@ -1492,8 +1516,9 @@ def openstack(registry, xml_parent, data): def build_user_vars(registry, xml_parent, data): """yaml: build-user-vars Set environment variables to the value of the user that started the build. - Requires the Jenkins :jenkins-wiki:`Build User Vars Plugin - <Build+User+Vars+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Build User Vars Plugin + <build-user-vars-plugin>`. Example:: @@ -1505,13 +1530,14 @@ def build_user_vars(registry, xml_parent, data): def release(registry, xml_parent, data): """yaml: release - Add release build configuration - Requires the Jenkins :jenkins-wiki:`Release Plugin <Release+Plugin>`. + Add release build configuration. + + Requires the Jenkins :jenkins-plugins:`Release Plugin <release>`. :arg bool keep-forever: Keep build forever (default true) :arg bool override-build-parameters: Enable build-parameter override (default false) - :arg string version-template: Release version template (default '') + :arg str version-template: Release version template (default '') :arg list parameters: Release parameters (see the :ref:`Parameters` module) :arg list pre-build: Pre-build steps (see the :ref:`Builders` module) :arg list post-build: Post-build steps (see :ref:`Builders`) @@ -1555,14 +1581,16 @@ def sauce_ondemand(registry, xml_parent, data): """yaml: sauce-ondemand Allows you to integrate Sauce OnDemand with Jenkins. You can automate the setup and tear down of Sauce Connect and integrate - the Sauce OnDemand results videos per test. Requires the Jenkins - :jenkins-wiki:`Sauce OnDemand Plugin <Sauce+OnDemand+Plugin>`. + the Sauce OnDemand results videos per test. + + Requires the Jenkins :jenkins-plugins:`Sauce OnDemand Plugin + <sauce-ondemand>`. :arg bool enable-sauce-connect: launches a SSH tunnel from their cloud to your private network (default false) :arg str sauce-host: The name of the selenium host to be used. For tests run using Sauce Connect, this should be localhost. - ondemand.saucelabs.com can also be used to conenct directly to + ondemand.saucelabs.com can also be used to connect directly to Sauce OnDemand, The value of the host will be stored in the SAUCE_ONDEMAND_HOST environment variable. (default '') :arg str sauce-port: The name of the Selenium Port to be used. For @@ -1672,8 +1700,9 @@ def sauce_ondemand(registry, xml_parent, data): def sonar(registry, xml_parent, data): """yaml: sonar - Wrapper for SonarQube Plugin - Requires :jenkins-wiki:`SonarQube plugin <SonarQube+plugin>` + Wrapper for SonarQube Plugin. + + Requires :jenkins-plugins:`SonarQube plugin <sonar>` :arg str install-name: Release goals and options (default '') @@ -1700,7 +1729,7 @@ def pathignore(registry, xml_parent, data): This plugin allows SCM-triggered jobs to ignore build requests if only certain paths have changed. - Requires the Jenkins :jenkins-wiki:`Pathignore Plugin <Pathignore+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Pathignore Plugin <pathignore>`. :arg str ignored: A set of patterns to define ignored changes @@ -1737,10 +1766,12 @@ def pathignore(registry, xml_parent, data): def pre_scm_buildstep(registry, xml_parent, data): """yaml: pre-scm-buildstep - Execute a Build Step before running the SCM - Requires the Jenkins :jenkins-wiki:`pre-scm-buildstep <pre-scm-buildstep>`. + Execute a Build Step before running the SCM. + + Requires the Jenkins :jenkins-plugins:`Pre SCM BuildStep + <preSCMbuildstep>`. - :arg string failOnError: Specifies if the job should fail on error + :arg str failOnError: Specifies if the job should fail on error (plugin >= 0.3) (default false). :arg list buildsteps: List of build steps to execute @@ -1772,8 +1803,9 @@ def pre_scm_buildstep(registry, xml_parent, data): def logstash(registry, xml_parent, data): """yaml: logstash build wrapper - Dump the Jenkins console output to Logstash - Requires the Jenkins :jenkins-wiki:`logstash plugin <Logstash+Plugin>`. + Dump the Jenkins console output to Logstash. + + Requires the Jenkins :jenkins-plugins:`logstash plugin <logstash>`. :arg use-redis: Boolean to use Redis. (default true) :arg redis: Redis config params @@ -1822,7 +1854,8 @@ def logstash(registry, xml_parent, data): def mongo_db(registry, xml_parent, data): """yaml: mongo-db build wrapper Initializes a MongoDB database while running the build. - Requires the Jenkins :jenkins-wiki:`MongoDB plugin <MongoDB+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`MongoDB plugin <mongodb>`. :arg str name: The name of the MongoDB install to use (required) :arg str data-directory: Data directory for the server (default '') @@ -1860,8 +1893,8 @@ def delivery_pipeline(registry, xml_parent, data): The version will be set to the environment variable PIPELINE_VERSION and will also be set in the downstream jobs. - Requires the Jenkins :jenkins-wiki:`Delivery Pipeline Plugin - <Delivery+Pipeline+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Delivery Pipeline Plugin + <delivery-pipeline-plugin>`. :arg str version-template: Template for generated version e.g 1.0.${BUILD_NUMBER} (default '') @@ -1895,8 +1928,10 @@ def delivery_pipeline(registry, xml_parent, data): def matrix_tie_parent(registry, xml_parent, data): """yaml: matrix-tie-parent Tie parent to a node. - Requires the Jenkins :jenkins-wiki:`Matrix Tie Parent Plugin - <Matrix+Tie+Parent+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Matrix Tie Parent Plugin + <matrixtieparent>`. + Note that from Jenkins version 1.532 this plugin's functionality is available under the "advanced" option of the matrix project configuration. You can use the top level ``node`` parameter to control where the parent @@ -1919,7 +1954,7 @@ def exclusion(registry, xml_parent, data): another job specifies the same resource, the second job will wait for the blocked resource to become available. - Requires the Jenkins :jenkins-wiki:`Exclusion Plugin <Exclusion-Plugin>`. + Requires the Jenkins :jenkins-plugins:`Exclusion Plugin <Exclusion>`. :arg list resources: List of resources to add for exclusion @@ -1942,7 +1977,7 @@ def ssh_agent_credentials(registry, xml_parent, data): """yaml: ssh-agent-credentials Sets up the user for the ssh agent plugin for jenkins. - Requires the Jenkins :jenkins-wiki:`SSH-Agent Plugin <SSH+Agent+Plugin>`. + Requires the Jenkins :jenkins-plugins:`SSH-Agent Plugin <ssh-agent>`. :arg list users: A list of Jenkins users credential IDs (required) :arg str user: The user id of the jenkins user credentials (deprecated) @@ -2020,8 +2055,8 @@ def credentials_binding(registry, xml_parent, data): Binds credentials to environment variables using the credentials binding plugin for jenkins. - Requires the Jenkins :jenkins-wiki:`Credentials Binding Plugin - <Credentials+Binding+Plugin>` version 1.1 or greater. + Requires the Jenkins :jenkins-plugins:`Credentials Binding Plugin + <credentials-binding>` version 1.1 or greater. :arg list binding-type: List of each bindings to create. Bindings may be of type `zip-file`, `file`, `username-password`, `text`, @@ -2032,7 +2067,7 @@ def credentials_binding(registry, xml_parent, data): variable to the password given in the credentials. amazon-web-services sets one variable to the access key and one variable to the secret access key. Requires the - :jenkins-wiki:`AWS Credentials Plugin <CloudBees+AWS+Credentials+Plugin>` + :jenkins-plugins:`AWS Credentials Plugin <aws-credentials>` . :Parameters: * **credential-id** (`str`) UUID of the credential being @@ -2163,8 +2198,8 @@ def credentials_binding(registry, xml_parent, data): def custom_tools(registry, xml_parent, data): """yaml: custom-tools - Requires the Jenkins :jenkins-wiki:`Custom Tools Plugin - <Custom+Tools+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Custom Tools Plugin + <custom-tools-plugin>`. :arg list tools: List of custom tools to add (optional) @@ -2198,8 +2233,10 @@ def custom_tools(registry, xml_parent, data): def nodejs_installator(registry, xml_parent, data): """yaml: nodejs-installator - Requires the Jenkins :jenkins-wiki:`NodeJS Plugin - <NodeJS+Plugin>`. + Provides Jenkins integration for NodeJS & npm packages. + + Requires the Jenkins :jenkins-plugins:`NodeJS Plugin + <nodejs>`. :arg str name: nodejs installation name (required) @@ -2221,7 +2258,8 @@ def nodejs_installator(registry, xml_parent, data): def xvnc(registry, xml_parent, data): """yaml: xvnc Enable xvnc during the build. - Requires the Jenkins :jenkins-wiki:`xvnc plugin <Xvnc+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`xvnc plugin <xvnc>`. :arg bool screenshot: Take screenshot upon build completion (default false) :arg bool xauthority: Create a dedicated Xauthority file per build (default @@ -2250,11 +2288,11 @@ def xvnc(registry, xml_parent, data): def job_log_logger(registry, xml_parent, data): """yaml: job-log-logger Enable writing the job log to the underlying logging system. - Requires the Jenkins :jenkins-wiki:`Job Log Logger plugin - <Job+Log+Logger+Plugin>`. - :arg bool suppress-empty: Suppress empty log messages - (default true) + Requires the Jenkins :jenkins-plugins:`Job Log Logger plugin + <job-log-logger-plugin>`. + + :arg bool suppress-empty: Suppress empty log messages (default true) Example: @@ -2271,7 +2309,8 @@ def job_log_logger(registry, xml_parent, data): def xvfb(registry, xml_parent, data): """yaml: xvfb Enable xvfb during the build. - Requires the Jenkins :jenkins-wiki:`Xvfb Plugin <Xvfb+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Xvfb Plugin <xvfb>`. :arg str installation-name: The name of the Xvfb tool installation (default 'default') @@ -2328,8 +2367,9 @@ def android_emulator(registry, xml_parent, data): Automates many Android development tasks including SDK installation, build file generation, emulator creation and launch, APK (un)installation... - Requires the Jenkins :jenkins-wiki:`Android Emulator Plugin - <Android+Emulator+Plugin>`. + + Requires the Jenkins :jenkins-plugins:`Android Emulator Plugin + <android-emulator>`. :arg str avd: Enter the name of an existing Android emulator configuration. If this is exclusive with the 'os' arg. @@ -2411,11 +2451,12 @@ def android_emulator(registry, xml_parent, data): def artifactory_maven(registry, xml_parent, data): """yaml: artifactory-maven - Wrapper for non-Maven projects. Requires the - :jenkins-wiki:`Artifactory Plugin <Artifactory+Plugin>` + Wrapper for non-Maven projects. + + Requires the Jenkins :jenkins-plugins:`Artifactory Plugin <artifactory>` :arg str url: URL of the Artifactory server. e.g. - https://www.jfrog.com/artifactory/ (default '') + https://jfrog.com/artifactory/ (default '') :arg str name: Artifactory user with permissions use for connected to the selected Artifactory Server (default '') @@ -2454,11 +2495,12 @@ def artifactory_maven(registry, xml_parent, data): def artifactory_generic(registry, xml_parent, data): """yaml: artifactory-generic - Wrapper for non-Maven projects. Requires the - :jenkins-wiki:`Artifactory Plugin <Artifactory+Plugin>` + Wrapper for non-Maven projects. + + Requires the Jenkins :jenkins-plugins:`Artifactory Plugin <artifactory>` :arg str url: URL of the Artifactory server. e.g. - https://www.jfrog.com/artifactory/ (default '') + https://jfrog.com/artifactory/ (default '') :arg str name: Artifactory user with permissions use for connected to the selected Artifactory Server (default '') @@ -2586,11 +2628,12 @@ def artifactory_generic(registry, xml_parent, data): def artifactory_maven_freestyle(registry, xml_parent, data): """yaml: artifactory-maven-freestyle - Wrapper for Free Stype projects. Requires the Artifactory plugin. - Requires :jenkins-wiki:`Artifactory Plugin <Artifactory+Plugin>` + Wrapper for Free Stype projects. + + Requires the Jenkins :jenkins-plugins:`Artifactory Plugin <artifactory>` :arg str url: URL of the Artifactory server. e.g. - https://www.jfrog.com/artifactory/ (default '') + https://jfrog.com/artifactory/ (default '') :arg str name: Artifactory user with permissions use for connected to the selected Artifactory Server (default '') :arg str release-repo-key: Release repository name (default '') @@ -2734,7 +2777,8 @@ def artifactory_maven_freestyle(registry, xml_parent, data): def maven_release(registry, xml_parent, data): """yaml: maven-release Wrapper for Maven projects - Requires :jenkins-wiki:`M2 Release Plugin <M2+Release+Plugin>` + + Requires the Jenkins :jenkins-plugins:`M2 Release Plugin <m2release>` :arg str release-goals: Release goals and options (default '') :arg str dry-run-goals: DryRun goals and options (default '') @@ -2780,8 +2824,8 @@ def version_number(parser, xml_parent, data): Generate a version number for the build using a format string. See the wiki page for more detailed descriptions of options. - Requires the Jenkins :jenkins-wiki:`version number plugin - <Version+Number+Plugin>`. + Requires the Jenkins :jenkins-plugins:`Version number plugin + <versionnumber>`. :arg str variable-name: Name of environment variable to assign version number to (required) @@ -2834,8 +2878,9 @@ def version_number(parser, xml_parent, data): def github_pull_request(parser, xml_parent, data): """yaml: github-pull-request Set GitHub commit status with custom context and message. - Requires the Jenkins :jenkins-wiki:`GitHub Pull Request Builder Plugin - <GitHub+pull+request+builder+plugin>`. + + Requires the Jenkins :jenkins-plugins:`GitHub Pull Request Builder Plugin + <ghprb>`. :arg bool show-matrix-status: Only post commit status of parent matrix job (default false) diff --git a/jenkins_jobs/modules/zuul.py b/jenkins_jobs/modules/zuul.py index 8766895d..e3243045 100644 --- a/jenkins_jobs/modules/zuul.py +++ b/jenkins_jobs/modules/zuul.py @@ -17,7 +17,7 @@ The Zuul module adds jobs parameters to manually run a build as Zuul would have. It is entirely optional, Zuul 2.0+ pass the parameters over Gearman. .. _expected by Zuul: \ -http://docs.openstack.org/infra/zuul/launchers.html#zuul-parameters +https://opendev.org/zuul/zuul/src/tag/2.6.0/doc/source/launchers.rst#zuul-parameters """ import itertools diff --git a/jenkins_jobs/registry.py b/jenkins_jobs/registry.py index 7ac93d77..5f1d7f9c 100644 --- a/jenkins_jobs/registry.py +++ b/jenkins_jobs/registry.py @@ -94,7 +94,7 @@ class ModuleRegistry(object): This allows module authors to differentiate generated XML output based on information such as specific plugin versions. - :arg string plugin_name: Either the shortName or longName of a plugin + :arg str plugin_name: Either the shortName or longName of a plugin as see in a query that looks like: ``http://<jenkins-hostname>/pluginManager/api/json?pretty&depth=2`` @@ -146,7 +146,7 @@ class ModuleRegistry(object): of component, and benefit from extensibility via Python entry points and Jenkins Job Builder :ref:`Macros <macro>`. - :arg string component_type: the name of the component + :arg str component_type: the name of the component (e.g., `builder`) :arg YAMLParser parser: the global YAML Parser :arg Element xml_parent: the parent XML element @@ -63,6 +63,7 @@ jenkins_jobs.projects = workflow=jenkins_jobs.modules.project_workflow:Workflow jenkins_jobs.views = all=jenkins_jobs.modules.view_all:All + delivery_pipeline=jenkins_jobs.modules.view_delivery_pipeline:DeliveryPipeline list=jenkins_jobs.modules.view_list:List nested=jenkins_jobs.modules.view_nested:Nested pipeline=jenkins_jobs.modules.view_pipeline:Pipeline diff --git a/tests/base.py b/tests/base.py index 910133f4..262e183f 100644 --- a/tests/base.py +++ b/tests/base.py @@ -46,6 +46,7 @@ from jenkins_jobs.modules import project_maven from jenkins_jobs.modules import project_multibranch from jenkins_jobs.modules import project_multijob from jenkins_jobs.modules import view_all +from jenkins_jobs.modules import view_delivery_pipeline from jenkins_jobs.modules import view_list from jenkins_jobs.modules import view_nested from jenkins_jobs.modules import view_pipeline @@ -237,6 +238,8 @@ class BaseScenariosTestCase(testscenarios.TestWithScenarios, BaseTestCase): if "view-type" in yaml_content: if yaml_content["view-type"] == "all": project = view_all.All(registry) + elif yaml_content["view-type"] == "delivery_pipeline": + project = view_delivery_pipeline.DeliveryPipeline(registry) elif yaml_content["view-type"] == "list": project = view_list.List(registry) elif yaml_content["view-type"] == "nested": diff --git a/tests/multibranch/fixtures/scm_gerrit_full.xml b/tests/multibranch/fixtures/scm_gerrit_full.xml index 04c59aec..02513673 100644 --- a/tests/multibranch/fixtures/scm_gerrit_full.xml +++ b/tests/multibranch/fixtures/scm_gerrit_full.xml @@ -31,7 +31,7 @@ <sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api"> <data> <jenkins.branch.BranchSource> - <source class="jenkins.plugins.gerrit.GerritSCMSource" plugin="gerrit"> + <source class="jenkins.plugins.gerrit.GerritSCMSource" plugin="gerrit-code-review"> <id>gr-https://review.gerrithub.io/johndoe/foo</id> <remote>https://review.gerrithub.io/johndoe/foo</remote> <credentialsId>secret</credentialsId> @@ -47,6 +47,10 @@ </jenkins.plugins.git.traits.RefSpecsSCMSourceTrait_-RefSpecTemplate> </templates> </jenkins.plugins.git.traits.RefSpecsSCMSourceTrait> + <jenkins.plugins.gerrit.traits.FilterChecksTrait> + <queryOperator>SCHEME</queryOperator> + <queryString>jenkins</queryString> + </jenkins.plugins.gerrit.traits.FilterChecksTrait> </traits> </source> <strategy class="jenkins.branch.DefaultBranchPropertyStrategy"> diff --git a/tests/multibranch/fixtures/scm_gerrit_full.yaml b/tests/multibranch/fixtures/scm_gerrit_full.yaml index 29fb7c86..1f325b6d 100644 --- a/tests/multibranch/fixtures/scm_gerrit_full.yaml +++ b/tests/multibranch/fixtures/scm_gerrit_full.yaml @@ -11,6 +11,9 @@ scm: all-branches: - suppress-scm-triggering: true - pipeline-branch-durability-override: max-survivability + filter-checks: + query-operator: 'SCHEME' + query-string: 'jenkins' build-strategies: - tags: ignore-tags-newer-than: 1 diff --git a/tests/multibranch/fixtures/scm_gerrit_minimal.xml b/tests/multibranch/fixtures/scm_gerrit_minimal.xml index 60959552..b29acd09 100644 --- a/tests/multibranch/fixtures/scm_gerrit_minimal.xml +++ b/tests/multibranch/fixtures/scm_gerrit_minimal.xml @@ -31,7 +31,7 @@ <sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api"> <data> <jenkins.branch.BranchSource> - <source class="jenkins.plugins.gerrit.GerritSCMSource" plugin="gerrit"> + <source class="jenkins.plugins.gerrit.GerritSCMSource" plugin="gerrit-code-review"> <id>gr-https://review.gerrithub.io/johndoe/foo</id> <remote>https://review.gerrithub.io/johndoe/foo</remote> <credentialsId/> diff --git a/tests/publishers/fixtures/opsgenie-full.xml b/tests/publishers/fixtures/opsgenie-full.xml new file mode 100755 index 00000000..4e630e6e --- /dev/null +++ b/tests/publishers/fixtures/opsgenie-full.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <publishers> + <com.opsgenie.integration.jenkins.OpsGenieNotifier plugin="opsgenie"> + <alertPriority>P1</alertPriority> + <notifyBuildStartPriority>P2</notifyBuildStartPriority> + <enable>true</enable> + <notifyBuildStart>true</notifyBuildStart> + <apiKey>test api key</apiKey> + <apiUrl>another-opsgenie-instance.com</apiUrl> + <tags>a,b,c</tags> + <teams>team a, team b</teams> + </com.opsgenie.integration.jenkins.OpsGenieNotifier> + </publishers> +</project> diff --git a/tests/publishers/fixtures/opsgenie-full.yaml b/tests/publishers/fixtures/opsgenie-full.yaml new file mode 100755 index 00000000..3bc58059 --- /dev/null +++ b/tests/publishers/fixtures/opsgenie-full.yaml @@ -0,0 +1,10 @@ +publishers: +- opsgenie: + enable-sending-alerts: true + notify-build-start: true + api-key: "test api key" + priority: "P1" + build-starts-alerts-priority: "P2" + api-url: "another-opsgenie-instance.com" + tags: "a,b,c" + teams: "team a, team b" diff --git a/tests/publishers/fixtures/opsgenie-minimal.xml b/tests/publishers/fixtures/opsgenie-minimal.xml new file mode 100755 index 00000000..21d7587b --- /dev/null +++ b/tests/publishers/fixtures/opsgenie-minimal.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <publishers> + <com.opsgenie.integration.jenkins.OpsGenieNotifier plugin="opsgenie"> + <alertPriority>P3</alertPriority> + <notifyBuildStartPriority>P3</notifyBuildStartPriority> + <enable>false</enable> + <notifyBuildStart>false</notifyBuildStart> + <apiKey/> + <apiUrl/> + <tags/> + <teams/> + </com.opsgenie.integration.jenkins.OpsGenieNotifier> + </publishers> +</project> diff --git a/tests/publishers/fixtures/opsgenie-minimal.yaml b/tests/publishers/fixtures/opsgenie-minimal.yaml new file mode 100755 index 00000000..d3c1d339 --- /dev/null +++ b/tests/publishers/fixtures/opsgenie-minimal.yaml @@ -0,0 +1,2 @@ +publishers: +- opsgenie diff --git a/tests/views/fixtures/view_delivery_pipeline-full.xml b/tests/views/fixtures/view_delivery_pipeline-full.xml new file mode 100644 index 00000000..031d1e61 --- /dev/null +++ b/tests/views/fixtures/view_delivery_pipeline-full.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<se.diabol.jenkins.pipeline.DeliveryPipelineView plugin="delivery-pipeline-plugin"> + <description>Test jobs created by JJB.</description> + <filterExecutors>false</filterExecutors> + <filterQueue>false</filterQueue> + <aggregatedChangesGroupingPattern/> + <allowAbort>true</allowAbort> + <allowManualTriggers>true</allowManualTriggers> + <allowPipelineStart>true</allowPipelineStart> + <allowRebuild>true</allowRebuild> + <linkRelative>false</linkRelative> + <linkToConsoleLog>true</linkToConsoleLog> + <maxNumberOfVisiblePipelines>-1</maxNumberOfVisiblePipelines> + <name>Test pipeline</name> + <noOfColumns>1</noOfColumns> + <noOfPipelines>1</noOfPipelines> + <pagingEnabled>true</pagingEnabled> + <showAbsoluteDateTime>false</showAbsoluteDateTime> + <showAggregatedChanges>false</showAggregatedChanges> + <showAggregatedPipeline>false</showAggregatedPipeline> + <showAvatars>false</showAvatars> + <showChanges>false</showChanges> + <showDescription>false</showDescription> + <showPromotions>false</showPromotions> + <showStaticAnalysisResults>false</showStaticAnalysisResults> + <showTestResults>false</showTestResults> + <showTotalBuildTime>true</showTotalBuildTime> + <updateInterval>2</updateInterval> + <sorting>None</sorting> + <componentSpecs> + <se.diabol.jenkins.pipeline.DeliveryPipelineView_-ComponentSpec> + <name>Test</name> + <firstJob>Test-A</firstJob> + <lastJob/> + <showUpstream>false</showUpstream> + </se.diabol.jenkins.pipeline.DeliveryPipelineView_-ComponentSpec> + </componentSpecs> + <regexpFirstJobs> + <se.diabol.jenkins.pipeline.DeliveryPipelineView_-RegExpSpec> + <regexp>^Test-A</regexp> + <showUpstream>false</showUpstream> + </se.diabol.jenkins.pipeline.DeliveryPipelineView_-RegExpSpec> + </regexpFirstJobs> +</se.diabol.jenkins.pipeline.DeliveryPipelineView> diff --git a/tests/views/fixtures/view_delivery_pipeline-full.yaml b/tests/views/fixtures/view_delivery_pipeline-full.yaml new file mode 100644 index 00000000..1e404681 --- /dev/null +++ b/tests/views/fixtures/view_delivery_pipeline-full.yaml @@ -0,0 +1,16 @@ +name: Test pipeline +description: Test jobs created by JJB. +view-type: delivery_pipeline +components: + - name: Test + initial-job: Test-A +regexps: + - regexp: ^Test-A +no-of-pipelines: 1 +allow-manual-triggers: yes +show-total-build-time: yes +allow-rebuild: yes +allow-pipeline-start: yes +allow-abort: yes +paging-enabled: yes +link-to-console-log: yes diff --git a/tests/views/fixtures/view_delivery_pipeline-minimal.xml b/tests/views/fixtures/view_delivery_pipeline-minimal.xml new file mode 100644 index 00000000..be342680 --- /dev/null +++ b/tests/views/fixtures/view_delivery_pipeline-minimal.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<se.diabol.jenkins.pipeline.DeliveryPipelineView plugin="delivery-pipeline-plugin"> + <description>Test jobs created by JJB.</description> + <filterExecutors>false</filterExecutors> + <filterQueue>false</filterQueue> + <aggregatedChangesGroupingPattern/> + <allowAbort>false</allowAbort> + <allowManualTriggers>false</allowManualTriggers> + <allowPipelineStart>false</allowPipelineStart> + <allowRebuild>false</allowRebuild> + <linkRelative>false</linkRelative> + <linkToConsoleLog>false</linkToConsoleLog> + <maxNumberOfVisiblePipelines>-1</maxNumberOfVisiblePipelines> + <name>Test pipeline</name> + <noOfColumns>1</noOfColumns> + <noOfPipelines>3</noOfPipelines> + <pagingEnabled>false</pagingEnabled> + <showAbsoluteDateTime>false</showAbsoluteDateTime> + <showAggregatedChanges>false</showAggregatedChanges> + <showAggregatedPipeline>false</showAggregatedPipeline> + <showAvatars>false</showAvatars> + <showChanges>false</showChanges> + <showDescription>false</showDescription> + <showPromotions>false</showPromotions> + <showStaticAnalysisResults>false</showStaticAnalysisResults> + <showTestResults>false</showTestResults> + <showTotalBuildTime>false</showTotalBuildTime> + <updateInterval>2</updateInterval> + <sorting>None</sorting> + <componentSpecs> + <se.diabol.jenkins.pipeline.DeliveryPipelineView_-ComponentSpec> + <name>Test</name> + <firstJob>Test-A</firstJob> + <lastJob/> + <showUpstream>false</showUpstream> + </se.diabol.jenkins.pipeline.DeliveryPipelineView_-ComponentSpec> + </componentSpecs> +</se.diabol.jenkins.pipeline.DeliveryPipelineView> diff --git a/tests/views/fixtures/view_delivery_pipeline-minimal.yaml b/tests/views/fixtures/view_delivery_pipeline-minimal.yaml new file mode 100644 index 00000000..3fd01318 --- /dev/null +++ b/tests/views/fixtures/view_delivery_pipeline-minimal.yaml @@ -0,0 +1,6 @@ +name: Test pipeline +description: Test jobs created by JJB. +view-type: delivery_pipeline +components: + - name: Test + initial-job: Test-A diff --git a/tests/views/test_views.py b/tests/views/test_views.py index fb506310..06d153c5 100644 --- a/tests/views/test_views.py +++ b/tests/views/test_views.py @@ -14,6 +14,7 @@ import os from jenkins_jobs.modules import view_all +from jenkins_jobs.modules import view_delivery_pipeline from jenkins_jobs.modules import view_list from jenkins_jobs.modules import view_nested from jenkins_jobs.modules import view_pipeline @@ -27,6 +28,12 @@ class TestCaseModuleViewAll(base.BaseScenariosTestCase): klass = view_all.All +class TestCaseModuleViewDeliveryPipeline(base.BaseScenariosTestCase): + fixtures_path = os.path.join(os.path.dirname(__file__), "fixtures") + scenarios = base.get_scenarios(fixtures_path) + klass = view_delivery_pipeline.DeliveryPipeline + + class TestCaseModuleViewList(base.BaseScenariosTestCase): fixtures_path = os.path.join(os.path.dirname(__file__), "fixtures") scenarios = base.get_scenarios(fixtures_path) diff --git a/tests/yamlparser/fixtures/project-with-auth-properties.xml b/tests/yamlparser/fixtures/project-with-auth-properties.xml new file mode 100644 index 00000000..4d4c1dfb --- /dev/null +++ b/tests/yamlparser/fixtures/project-with-auth-properties.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<com.cloudbees.hudson.plugins.folder.Folder plugin="cloudbees-folder"> + <icon class="com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon"/> + <views/> + <viewsTabBar class="hudson.views.DefaultViewsTabBar"/> + <primaryView>All</primaryView> + <healthMetrics/> + <actions/> + <description><!-- Managed by Jenkins Job Builder --></description> + <keepDependencies>false</keepDependencies> + <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> + <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> + <concurrentBuild>false</concurrentBuild> + <canRoam>true</canRoam> + <properties> + <hudson.security.AuthorizationMatrixProperty> + <permission>hudson.model.Item.Build:auser</permission> + </hudson.security.AuthorizationMatrixProperty> + </properties> + <scm class="hudson.scm.NullSCM"/> + <publishers/> + <buildWrappers/> +</com.cloudbees.hudson.plugins.folder.Folder> diff --git a/tests/yamlparser/fixtures/project-with-auth-properties.yaml b/tests/yamlparser/fixtures/project-with-auth-properties.yaml new file mode 100644 index 00000000..f761d8ce --- /dev/null +++ b/tests/yamlparser/fixtures/project-with-auth-properties.yaml @@ -0,0 +1,12 @@ +- property: + name: auth-prop-test + properties: + - authorization: + auser: + - job-build + +- job: + name: auth-job-test + project-type: folder + properties: + - auth-prop-test @@ -1,6 +1,6 @@ [tox] minversion = 2.2 -envlist = linters, docs, py34, py35, py36, py27, cover +envlist = linters, docs, docs-linkcheck, py34, py35, py36, py27, cover skip_missing_interpreters = true # custom vars (no meaning to tox) install_test_deps = pip install -q -r test-requirements.txt @@ -76,13 +76,15 @@ commands = jenkins-jobs test -o .test/new/out/ .test/new/config/ [testenv:docs] commands = {[tox]install_test_deps} - python setup.py build_sphinx {posargs} + sphinx-build -n -W -b html -d doc/build/doctrees doc/source doc/build/html [testenv:docs-linkcheck] # If you are behind a proxy, for this test to work you will need to set # TOX_TESTENV_PASSENV="http_proxy https_proxy no_proxy ..." to pass # through the proxy environment settings to be able to validate any urls. -commands = python setup.py build_sphinx -b linkcheck +commands = + {[tox]install_test_deps} + sphinx-build -n -W -b linkcheck -d doc/build/doctrees doc/source doc/build/linkcheck [testenv:venv] commands = {posargs} |