Add alternative plugin update
13 April some new plugins were released leading old jenkins to be
inoperable. Adding semi-pin mechanism will allow us to handle it.
PROD-36857
Change-Id: Ic3d38cb9f86e16c316fb221e8a9d770dc1f5f400
(cherry picked from commit 22b44555bff43bec97ed797f236590ed3875fc06)
diff --git a/README.rst b/README.rst
index 42bcbeb..96e6b1e 100644
--- a/README.rst
+++ b/README.rst
@@ -465,6 +465,29 @@
enabled: false
plugin5: absent
+Alternative plugin management using version pins (baseline plugin management could not work with some
+modern version labels like "1.12+build.201809061734").
+
+.. code-block:: yaml
+
+ jenkins:
+ client:
+ plugin:
+ alt_update:
+ enabled: True
+ base_url: https://archives.jenkins-ci.org/plugins/
+ jenkins_home_volume_dir: /srv/volumes/jenkins/
+ plugins:
+ ace-editor:
+ source_hash: abc97028893c8a71581a5f559ea48e8e1f1a65164faee96dabfed9e95e9abad2
+ version: '1.1'
+ ant:
+ source_hash: f04961a8a42f1e2ccdf5001d33ae93fdc2b3a5af96f13bddc1d721f1d11a8b4b
+ version: '1.8'
+ apache-httpcomponents-client-4-api:
+ enabled: False
+
+
Adding plugin params to job:
.. code-block:: yaml
diff --git a/_modules/jenkins_common.py b/_modules/jenkins_common.py
index 64cede6..422be23 100644
--- a/_modules/jenkins_common.py
+++ b/_modules/jenkins_common.py
@@ -194,3 +194,41 @@
ret['result'] = None if test else result
return ret
+
+def jenkins_do_safe_restart(**kwargs):
+ """
+ Execute safe restart using jenkins groovy call
+
+ :returns: salt-specified state dict
+ """
+ restart_cmd_groovy = "Jenkins.instance.doSafeRestart()"
+ test = __opts__['test'] # noqa
+ module_name = 'jenkins_do_safe_restart'
+ ret = {
+ 'name': module_name,
+ 'changes': {},
+ 'result': False,
+ 'comment': '',
+ }
+ result = False
+ if test:
+ status = "SUCCESS"
+ ret['changes'][module_name] = status
+ ret['comment'] = 'Jenkins safe restart initiated (test mode)'
+ ret['result'] = None
+ return ret
+
+ call_result = __salt__['jenkins_common.call_groovy_script'](restart_cmd_groovy, [])
+ if call_result["code"] == 200:
+ status = call_result["msg"]
+ ret['changes'][module_name] = status
+ ret['comment'] = 'Jenkins safe restart initiated'
+ ret['result'] = True
+ else:
+ status = 'FAILED'
+ ret['changes'][module_name] = status
+ ret['comment'] = "Failed to initiate jenkins restart: {}".format(call_result["msg"])
+ logger.error("Failed to initiate jenkins restart: {}".format(call_result["msg"]))
+
+ return ret
+
diff --git a/jenkins/client/plugin.sls b/jenkins/client/plugin.sls
index c2da622..dd11c7c 100644
--- a/jenkins/client/plugin.sls
+++ b/jenkins/client/plugin.sls
@@ -1,11 +1,45 @@
{% from "jenkins/map.jinja" import client with context %}
+{% from "jenkins/map.jinja" import jenkins_offline_deployment with context %}
{%- if client.plugin is defined %}
+
+{%- set alt_update_manager_enabled = client.plugin.get("alt_update",{}).get('enabled', False) %}
+
+{%- if jenkins_offline_deployment == True or not alt_update_manager_enabled %}
+
jenkins_plugins:
jenkins_plugin.managed:
- plugins: {{ client.plugin }}
- remove_unwanted: {{ client.get('plugin_remove_unwanted', False) }}
- force_remove: {{ client.get('plugin_force_remove', False) }}
+{%- else %}
+
+{%- for plugin_name, plugin_params in client.plugin.get('alt_update',{}).get('plugins',{}).iteritems() %}
+
+{%- if plugin_params.get('enabled', True) %}
+jenkins_plugin_{{ plugin_name }}_pin_install:
+ file.managed:
+ - source: {{ client.plugin.alt_update.base_url }}/{{ plugin_name }}/{{ plugin_params.get('version', 'latest') }}/{{ plugin_name }}.hpi
+ - name: {{ client.plugin.alt_update.jenkins_home_volume_dir }}/plugins/{{ plugin_name }}.jpi
+ - user: 1000
+ - group: 1000
+ - replace: True
+ - source_hash: {{ plugin_params.source_hash }}
+{%- else %}
+jenkins_plugin_{{ plugin_name }}_pin_uninstall:
+ file.absent:
+ - name: {{ client.plugin.alt_update.jenkins_home_volume_dir }}/plugins/{{ plugin_name }}.jpi
+{%- endif %}
+
+{%- endfor %}
+
+jenkins_plugin_call_safe_restart:
+ module.run:
+ - name: jenkins_common.jenkins_do_safe_restart
+
+{%- endif %}
+
+
jenkins_wait_functional:
cmd.script:
- source: salt://jenkins/files/wait4jenkins.sh
@@ -15,5 +49,9 @@
- WAIT_TIME: "300"
- INTERVAL: "5"
- require:
+ {%- if alt_update_manager_enabled %}
+ - jenkins_plugin_call_safe_restart
+ {%- else %}
- jenkins_plugins
+ {%- endif %}
{%- endif %}
diff --git a/jenkins/map.jinja b/jenkins/map.jinja
index 3a33f07..6cba6a4 100644
--- a/jenkins/map.jinja
+++ b/jenkins/map.jinja
@@ -83,3 +83,5 @@
}
},
}, merge=pillar.jenkins.get('client', {})) %}
+
+{% set jenkins_offline_deployment = pillar.get('_param', {}).get('jenkins_offline_deployment', False) %}
diff --git a/metadata/service/client.yml b/metadata/service/client.yml
index 822a025..9e31c7c 100644
--- a/metadata/service/client.yml
+++ b/metadata/service/client.yml
@@ -4,3 +4,465 @@
jenkins:
client:
enabled: true
+ plugin:
+ alt_update:
+ enabled: true
+ base_url: https://archives.jenkins-ci.org/plugins/
+ jenkins_home_volume_dir: /srv/volumes/jenkins/
+ plugins:
+ ace-editor:
+ source_hash: abc97028893c8a71581a5f559ea48e8e1f1a65164faee96dabfed9e95e9abad2
+ version: '1.1'
+ ant:
+ source_hash: f04961a8a42f1e2ccdf5001d33ae93fdc2b3a5af96f13bddc1d721f1d11a8b4b
+ version: '1.8'
+ antisamy-markup-formatter:
+ source_hash: 8e8e3e917d76b0432ab3c32a000e824f4ef32011ba5e77dd8b6b476310df8f1a
+ version: '1.5'
+ apache-httpcomponents-client-4-api:
+ source_hash: 1fa5adafcd043c582a9b6ec44a6a37166db77bb6d5b7d2c4f9902ad263a65636
+ version: 4.5.13-1.0
+ artifactory:
+ source_hash: 3d89362b653073969ebc051e2bc0e6899a193a201e31fa110cb2ab253ca2a4ac
+ version: 3.15.4
+ audit-trail:
+ source_hash: 0d9ab920ae4637c2a1abdc7e816b47b718391cdc9c6e5f311caf5bdc4e73aeff
+ version: '3.8'
+ authentication-tokens:
+ source_hash: f05736bc7da0df3bba5ceb4d893089706812ced3134adb2edc9ae341467f1ae3
+ version: '1.3'
+ blueocean:
+ source_hash: 406b7a3e38956aecec3b4780b8413cc6dfd724abd74750d07aefbc5281fe8f26
+ version: 1.24.8
+ blueocean-autofavorite:
+ source_hash: 274679e99b23b03dc4203df76b34966cc317fbb6cb46149eeec88770c6999146
+ version: 1.2.5
+ blueocean-bitbucket-pipeline:
+ source_hash: 4583996cf6951be5261f96c3f90dd93f7c9ed28d8f5a92a21ab31fca211e7b5b
+ version: 1.24.8
+ blueocean-commons:
+ source_hash: 6637636a19e85e2d6c9c0150a02dfcbb88fb1f975ffb28ee68ba6994de014944
+ version: 1.24.8
+ blueocean-config:
+ source_hash: 61994738b9436664966ce790562dab9285acad72c2f380162f813f84eacf06ee
+ version: 1.24.8
+ blueocean-core-js:
+ source_hash: 92d4fef4ef4f42dd303d08547997384798e76f058afc45c46a15768914c80914
+ version: 1.24.8
+ blueocean-dashboard:
+ source_hash: 9a62639272634a4444403f45f6fcb406e51ad4c09f752cbb82e809e354a2aa7f
+ version: 1.24.8
+ blueocean-display-url:
+ source_hash: f4179b8221e6c330317bd8a037d4074a03361290687a25c162335ee82710b303
+ version: 2.4.1
+ blueocean-events:
+ source_hash: 43bd236b0a9963e1fc3ff34a4d24c8e2eb83b9c2771ac9744721ea567c7c629b
+ version: 1.24.8
+ blueocean-git-pipeline:
+ source_hash: 8792cf273933c80e95021961c3f73fd3ada7ced7a66c600055b2c531d2797122
+ version: 1.24.8
+ blueocean-github-pipeline:
+ source_hash: 103907cdb206d16b0fdb789b5ceeaa4724fa26d53b39f6890f8cb252f313ee29
+ version: 1.24.8
+ blueocean-i18n:
+ source_hash: 4b1d40944c6098268a3a3e6f724f573aafb09a1dd9441f50ff8787b0e2751086
+ version: 1.24.8
+ blueocean-jira:
+ source_hash: bcf7caed265f258d0f341892c2a6e1b94b6837b995de1ffbbdee3c2eca5ad309
+ version: 1.24.8
+ blueocean-jwt:
+ source_hash: fc678f8406ca46075232aba9da353ac5c4f4f62ec449a763b8b31c0368eb3315
+ version: 1.24.8
+ blueocean-personalization:
+ source_hash: aa26e2a0f53927c7e6ba35e95de4b88c8d2c40b930337158c9d6a64868060858
+ version: 1.24.8
+ blueocean-pipeline-api-impl:
+ source_hash: d92bab4d4ea8508a37cb8dd955bd56007192502976a682880151219e31658283
+ version: 1.24.8
+ blueocean-pipeline-editor:
+ source_hash: c1cc5b99be80fde7bfdc3c7c09d6e7de8748b84bfd1e2a23b8b409edd4a600c5
+ version: 1.24.8
+ blueocean-pipeline-scm-api:
+ source_hash: a6c1cdeb1d57c261ba75d6a3e83020d71084863ed98f6cec1dd0c012129c44c3
+ version: 1.24.8
+ blueocean-rest:
+ source_hash: 10c13594eb283259ced63101eda0caa99821801851ec87c62a62b4d04e4627ca
+ version: 1.24.8
+ blueocean-rest-impl:
+ source_hash: 7ca1446798e500b2f363e8dac326db37ceee477024553a7b7f7243c53c65606e
+ version: 1.24.8
+ blueocean-web:
+ source_hash: c7e8cd7f609115ef70ce05eba998ad24ec4a5bba034237ee655869341252343c
+ version: 1.24.8
+ bootstrap4-api:
+ source_hash: 5ed055fc291662a02a01d3763aef9de5f3f0fb86ebe946e939a5dc27a87bd513
+ version: 4.6.0-3
+ bootstrap5-api:
+ source_hash: b7cb160844d959c2f4ef4bb938bae45366fd7bb9ade0675989f4da3aa7def3cb
+ version: 5.1.1-1
+ bouncycastle-api:
+ source_hash: bf71f88eda34bd304ded9ac374bbcdaeb0dccb8618dd94bdfa2af486d7971f21
+ version: '2.17'
+ branch-api:
+ source_hash: f018c684cd93d362e14136a6d4f5c1dfa699dd7bc71fdc620c94edd73159675d
+ version: 2.6.2
+ build-blocker-plugin:
+ source_hash: 2d9947ab2b4eb99dadaeb172f543008a1c39c54f9f13563422f02f10dbdaf1d9
+ version: 1.7.3
+ build-monitor-plugin:
+ source_hash: 6ac31c808e7e8ccd26faccc17987fdff36253c5b06b712510d8d5e63f80abd7a
+ version: 1.12+build.201809061734
+ build-timeout:
+ source_hash: a92b43adb9c668e3fd0ad307db43c2277cf15ea75c084b5bdc74fb294f80583d
+ version: '1.19'
+ build-user-vars-plugin:
+ source_hash: d4cb821c1767a5fa80933dd679793af67539fc72a8be80806080dfd102094932
+ version: '1.5'
+ caffeine-api:
+ source_hash: f505f5d151faf606f1e5633f741abff86229e88e09bed3dba63a9453698be68a
+ version: 2.9.2-29.v717aac953ff3
+ categorized-view:
+ source_hash: d23d6618df9f4c3442c35baa62467546f535e49c277566461cfff2bfe7bcb2fa
+ version: '1.10'
+ checks-api:
+ source_hash: effbec009c054395fd6052edea58887a16f3c4f96fbb86a14933fa9bcc9a8d0b
+ version: 1.7.2
+ cloudbees-bitbucket-branch-source:
+ source_hash: 585f5378a2a3bbfa745ef6d69e655bb4b0082229e62dcb440cb3932bdb092640
+ version: 726.vb0c1ea6c9336
+ cloudbees-folder:
+ source_hash: 63acd32d95df62dd040f53e8bab4086699cd581f4701699aeff795473415c9fe
+ version: 6.688.vfc7a_a_69059e0
+ command-launcher:
+ source_hash: c4f964c6deb599816f6740ef674cb6dd2644d5f1b4e7b886a948f778ec5c189e
+ version: '1.2'
+ config-file-provider:
+ source_hash: 7fad7e046f3a0de7d0fb289165e7234384400a52bf37a061135de28ac0f24364
+ version: 3.8.0
+ copyartifact:
+ source_hash: e59163cf42abd8c308c10f14c6e3611afe293ab54e6576cb6f6b25bba7380cdd
+ version: 1.46.2
+ credentials:
+ source_hash: 6baec982cc0419218c0e523ab8e28dcc80c50c09ed84cc1afabf075567ab8d28
+ version: 2.6.1
+ credentials-binding:
+ source_hash: d9abd18c6bdcf4ad4ba6553e10dd71fa13d2846729517a9244a94707fb580231
+ version: 1.27.1
+ description-setter:
+ source_hash: 5e7446ef3e8654216e0356958266c02385a7bf247fdb0709878067847ae30168
+ version: '1.10'
+ discard-old-build:
+ source_hash: 6f677030e6b8b9bc1e8ad9d4de7c72c4a39db15e853b7e86b9d0a37749ca8e82
+ version: '1.05'
+ display-url-api:
+ source_hash: 4a418820b9faa7f01cfa990b75ddc67f090809d3f9bd8b95707cd7840eb45209
+ version: 2.3.5
+ docker-commons:
+ source_hash: 33039e977d93adf6f57a8938d2b9d3725464f7dedcf248feb754434d4fa0104a
+ version: '1.13'
+ docker-workflow:
+ source_hash: 2e661e881dbf700cae09bf97514e9ad13853e0acbbdd366c14b1584e288f5f04
+ version: '1.17'
+ durable-task:
+ source_hash: 18d3d8b2535427968e4af94379802bb7e6a59ebfce432794e47bd2ac98c23346
+ version: '1.37'
+ echarts-api:
+ source_hash: fc8af480b2cfdd461ea9402200a07ba7efddcb1ba28ae30279806b2c61efe256
+ version: 5.2.1-2
+ email-ext:
+ source_hash: ce1d6004b5d9f84af7f5d658fe31e1241296dd1969cfbf7223d3ec77c932215a
+ version: '2.84'
+ envinject:
+ source_hash: 161010a696fbe1d74a5e2f846794d79e094fae17e8cfa5ffc78810b822cfbc6e
+ version: 2.3.0
+ envinject-api:
+ source_hash: 1e754499945fd4d76e8dba6490f894c3ecafc4834daa1b2b3ae4b7e80124635f
+ version: '1.8'
+ extended-choice-parameter:
+ source_hash: 6854b430db8b3b48dd89975214a4b8d449e70746ed176cfda4a82c66a0c3ba64
+ version: '0.76'
+ extensible-choice-parameter:
+ source_hash: 1c46bcbb0022889cb95aea9a5b017eeb7496fdfb689c40adf88be2c01dfaa42a
+ version: 1.6.0
+ external-monitor-job:
+ source_hash: fb10e5a8bb82c04b707aa44df30a97ba8285761f8247122486d87ce0b5fb3d8b
+ version: '1.4'
+ favorite:
+ source_hash: d51563ddf4541e20fb568a81d2b64632b940eaa0338d01e41c8ff51fec35c1b3
+ version: 2.3.2
+ font-awesome-api:
+ source_hash: f4a2dad824756bda645818b8d4d9fa0722c0903e55d238e2322a6f676f6b7fff
+ version: 5.15.4-1
+ gerrit-trigger:
+ source_hash: 75451831af12f866a810d5f8493a436b075f0883174e6a4de5f19aa985a9cb3e
+ version: 2.35.2
+ git:
+ source_hash: 89b8f162ad2bd977229cf7553df108248ccb7ed2b83df0d3bb0dc9460898d49e
+ version: 4.8.3
+ git-client:
+ source_hash: 2e721684fa82cddbc2488cd11ad45ef24ca63ad06c571466da9e619afc2ee986
+ version: 3.9.0
+ git-server:
+ source_hash: aea06b730b6a55ed4f29ab5f912152ec070314b5cd70ac78eb6ad0dc05833de9
+ version: '1.9'
+ github:
+ source_hash: 555fbde2a2726540bbb3e10dba1695d15de1a3c5ad0ad159e37cb5094077af20
+ version: 1.34.2
+ github-api:
+ source_hash: 7aaeb031751e359ea392d2690d5b3d27cd1351cdc032d740cfdcc3b085f5f926
+ version: 1.301-378.v9807bd746da5
+ github-branch-source:
+ source_hash: 432580f60a472390fb89f345993da0a1819f9a838630b0ef595cdf84fb116ee2
+ version: 2.9.9
+ gradle:
+ source_hash: f7c904f935e9bbf56d7975a2648d7cd8f443a99ca9509d76adf1b57896cb7015
+ version: '1.29'
+ handlebars:
+ source_hash: bc5cc7b3eca17ba6cec0a8def94f3aa78ad7a19387a19aa3a56f857a18966afa
+ version: 1.1.1
+ handy-uri-templates-2-api:
+ source_hash: cd678d9809f695c7c40af1e8ee0a5e73efca07e2a3227fe60db1c3fb6d1d6fe8
+ version: 2.1.8-1.0
+ heavy-job:
+ source_hash: 92314994153c2371bf2f9a0ffcb087158ad571057372ece67ea5e6e9605849c4
+ version: '1.1'
+ htmlpublisher:
+ source_hash: 6b973b9aacd1642ebf6ef53fb677ffca94ce576d13970eb26aad55da07a0d327
+ version: '1.25'
+ ivy:
+ source_hash: 30c88dbdcc7907a2dd9168640a78552fb04b0251fd6a1ecaebdf3d7f8135c13b
+ version: '2.1'
+ jackson2-api:
+ source_hash: 7b8aac0bad8a857653f8137711548428d38c45a2bb3541931e77980d4d402e93
+ version: 2.13.1-246.va8a9f3eaf46a
+ javadoc:
+ source_hash: a5f2321aed9ec068781962114413f305665dfbcc89ba13bee9b797551de6bbc9
+ version: '1.6'
+ jdk-tool:
+ source_hash: 87ffa354eb3c3eba1185d6086abdd32d60e22fabdd98dfb52cbeba7b1a1a3d4c
+ version: '1.1'
+ jenkins-design-language:
+ source_hash: 0bedbc3001c3e4538f5fc7df60dc190d4dee9176150ea891f16a2928e2f99f2f
+ version: 1.24.8
+ jira:
+ source_hash: 2fadcbe90f193ce62c7c75334ed8f6f68950ece8b41e90929e26486aacffd796
+ version: '3.3'
+ jjwt-api:
+ source_hash: b051f96e04239821191c3144cd17a52701d10433cb742851cd329b5140253fd3
+ version: 0.11.2-9.c8b45b8bb173
+ jobConfigHistory:
+ source_hash: 0a2237112f35a1d34bd460a1e7e1678ad0647e930a3e0b82998a4f78ceb21ba4
+ version: 2.18.2
+ jquery:
+ source_hash: fdfb8c7b0370ecaf10985c8be8dd3f7f651c3bddd84c709df14c26508d2aeb1e
+ version: 1.12.4-0
+ jquery-detached:
+ source_hash: a05273cd20c11557ffcb7dcb75150f21d35dc8be28355548b831c2960d7f11c0
+ version: 1.2.1
+ jquery3-api:
+ source_hash: 09b75305611160148c572f76953a020278d64960768cb76f5e435a665170de4e
+ version: 3.6.0-2
+ jsch:
+ source_hash: cdc74bf8e43eb40ae6ad98ba2f866c8891408038699da9b836518a1d8923fc44
+ version: 0.1.55.2
+ junit:
+ source_hash: d57138eead1432a04bb89a90fad29e3cc7675144c8ac3989597d7abe84e970c5
+ version: '1.53'
+ ldap:
+ source_hash: 19b6e782be2731eba4922de991bde52e0d0623c6743b1f39a395682b4bc1c0ef
+ version: '1.20'
+ lockable-resources:
+ source_hash: d3aa322beddd3ba007d186f57283719e107355e37748dea440123188e2113c2e
+ version: '2.14'
+ mailer:
+ source_hash: f91e1adef97bd08960f8e8a775920e98989bc778e6c0f1f9d5ed5561063e25f9
+ version: 1.34.2
+ matrix-auth:
+ source_hash: 0e2a9c6258fff7e4965cb5b30e8d1ae66f41916192f4adb4f79aa0b12ad07be5
+ version: 2.6.6
+ matrix-project:
+ source_hash: d84c0f2dcb7d6e4259c82607f663b4f3ec76c8f7c833eafa6abc71fe46c185c9
+ version: 1.18.1
+ maven-plugin:
+ source_hash: 0e832156b1bd28b0e8f2679d27678818d914846ff413fc173973da8ac435f760
+ version: 3.8.1
+ mercurial:
+ source_hash: 1521b8c68a8fb3a94f266fe3506b929deea8dfea2ecc8c8ea42d68bc591ee3b9
+ version: '2.14'
+ metrics:
+ source_hash: b60b49ab946cd8b960f999876b7da880fadf9ca07dd9524f9f0af63a5d0342eb
+ version: 4.0.2.2
+ momentjs:
+ source_hash: ca3c2d264cff55f71e900dc7de1f13c0bfbffdb9b3419b854dce175bcb8a4848
+ version: 1.1.1
+ monitoring:
+ source_hash: a891afa36be4558d2fa2653bb58a20ccb4414090022f4cd848f3328597f7ef60
+ version: 1.87.0
+ multiple-scms:
+ source_hash: 9c404682d51654c2a70134c8567c1d0b6abe3b8d5f926d6e6cd974afa04fb2ca
+ version: '0.6'
+ okhttp-api:
+ source_hash: 6b5cf02b0faa6df2f9615bd249f472283326886d3cbe824f11933d17eb5e1809
+ version: 4.9.3-105.vb96869f8ac3a
+ pam-auth:
+ source_hash: ab3a13f094bf379f9e3fbf98bf49bfe677b2548ac5874483022d69cd9571c746
+ version: 1.5.1
+ performance:
+ source_hash: dc203b7cfff3f07a254d97a3c9e9992b17a592a02057f7244551b5302a57ee4b
+ version: '3.12'
+ permissive-script-security:
+ source_hash: 828f000f7048f6bd5de72a0a4e1b15ec79f383969aa362ff0fe83606e0395eea
+ version: '0.3'
+ pipeline-build-step:
+ source_hash: dac99bde913279d7cb8a1c33c947549023f8dd9af99844b441cce2fb2da33cb4
+ version: '2.16'
+ pipeline-graph-analysis:
+ source_hash: 2a8965fabd0563832df74fe8a403d91a8828acafd4d972722e71fcce9abf64ce
+ version: '1.11'
+ pipeline-input-step:
+ source_hash: e35f3324e38bfc853cb196b1c1cd0e10b6059f464876b96db2edb75960bda82f
+ version: 427.va6441fa17010
+ pipeline-milestone-step:
+ source_hash: d3a26629b656821c60a14fe403ab8afc50f084e338406dbc27e2b6b403f7cb20
+ version: 1.3.1
+ pipeline-model-api:
+ source_hash: 10bc0c6d33ce721bf236b3c6ec04d7e0a66d9e86ec6aeb543fcbea9d262a9cf3
+ version: 1.9.3
+ pipeline-model-declarative-agent:
+ source_hash: d5540c3973bf5f568910f93b3a002c413148b9d3dd4211ce5faf4a2a1214d4ef
+ version: 1.1.1
+ pipeline-model-definition:
+ source_hash: 0b14a247d4e8a9d3a41e74acc5a127eb4aa4d28a048e262da5c2a6ef76b0010e
+ version: 1.9.3
+ pipeline-model-extensions:
+ source_hash: b6a4d28b1fc752e9554affa6e13028b8bce96809c77bd182407f00b2b1c18375
+ version: 1.9.3
+ pipeline-rest-api:
+ source_hash: 39ff14bddd40519100c7ba4b31b5c5aa067561ed5b4f857118f0ec915c17e8d4
+ version: '2.10'
+ pipeline-stage-step:
+ source_hash: 04fcd62490bb50c51609f62bc6f47a343f72369e28f6b10b6720caaf564656be
+ version: 291.vf0a8a7aeeb50
+ pipeline-stage-tags-metadata:
+ source_hash: e63b26ba9b756591491aea6b75830babc51c6fa82501a50306a9eddad660a2c5
+ version: 1.9.3
+ pipeline-stage-view:
+ source_hash: bb551d1e9e421868a4e8b58a0159b54e3660fdfc3b7f8178b92dea3d029e0f95
+ version: '2.10'
+ pipeline-utility-steps:
+ source_hash: 1eb4ed77ad887f956d44af7caead7c2b255bd64ddf8927a95ad904e0a1d16952
+ version: 2.1.0
+ plain-credentials:
+ source_hash: 8dfd05ea601968df1fe5530a09bb502c33985530a0e4950234117cc5ee46c3b3
+ version: '1.8'
+ plot:
+ source_hash: 0d901de7e672b9bb940e267c77bed337e97c1a68864335800b3a64a0cf75d001
+ version: 2.1.0
+ plugin-util-api:
+ source_hash: 65da4025061b18629677799a67314c600bd4fc178b94c973f026f0935da03ffb
+ version: 2.5.0
+ popper-api:
+ source_hash: c5bbf6279fa3492724e86376da2ecc038a27b089287012f6f11b50b6ab65e3f2
+ version: 1.16.1-2
+ popper2-api:
+ source_hash: 8c9b9bf9b755707e6a176a5d1186063626521be3aed51744991bc87cc863391c
+ version: 2.10.2-1
+ prometheus:
+ source_hash: ae8c53a74417aa1f3d6a774a6957c5f11a6fcab51fcc28f99bfe0ff54ede766e
+ version: 2.0.0
+ pubsub-light:
+ source_hash: 0a7d642c7f66b589a375c0e06d13fb125ad90bf28a551a445ff5a37fd4bd486c
+ version: '1.13'
+ rebuild:
+ source_hash: 4f17fe9da81e00c9d22e48ac862eca47bf8181aa24b3657481c40f720304517c
+ version: '1.33'
+ run-condition:
+ source_hash: 7ed94d7196676c00e45b5bf7e191831eee0e49770dced1c266b8055980b339ca
+ version: '1.5'
+ scm-api:
+ source_hash: 20adc461e6459098ffc538dace079d76b948f7ee6f86b247703720e803e2c840
+ version: 2.6.5
+ script-security:
+ source_hash: abb08e9ea19ff8711edc4fa0948c9a22c2bc87a207000b2faf85cf0422b97024
+ version: 1138.v8e727069a_025
+ simple-theme-plugin:
+ source_hash: d823ac7fa1d5861051fc69534f5678c32d10c98a00987a045b0b7836fd733584
+ version: 0.5.1
+ slack:
+ source_hash: 0ae8977a94b13dd54522793d9f97854dcf10de853b9e5059d059c8c62e10dad9
+ version: '2.49'
+ snakeyaml-api:
+ source_hash: 9f8b34f1e657a4e88349663988b405e2dead6b1f9e737e8fac9736a69b6e5595
+ version: 1.29.1
+ sse-gateway:
+ source_hash: 8e9209c8a8a41389a2052c2a22e32ce016386caac9acd2acfb0a3332c2c8d51c
+ version: '1.24'
+ ssh-agent:
+ source_hash: 196a6bc5c8e41a57d9d1f2db0b5fce16b2544143409e85f1b83455ad94728a50
+ version: '1.17'
+ ssh-credentials:
+ source_hash: 8db908c484737f260cfab6682a42cbeaf390b3b9efd87925375691e45c370492
+ version: 1.18.1
+ ssh-slaves:
+ source_hash: 8a38d77f7859551552ef98e11119f491e4c1389892b72c159e4d15825fc2822a
+ version: 1.29.4
+ structs:
+ source_hash: 2cbcb66e0f77daf616f53f42c97ded31f70bd117c6d9ddf25432f2ada1ba4d6d
+ version: 308.v852b473a2b8c
+ test-stability:
+ source_hash: 6a996ab33025e105510a3d765e9cc405eb254351a8d70eff8cbcdfae3cc4794e
+ version: '2.3'
+ throttle-concurrents:
+ source_hash: 626ebc75c0b9c21be6e08bd421447846ef4d53a20538043cbc16a89386f64ade
+ version: 2.0.1
+ timestamper:
+ source_hash: c6720665ff685310025634cb64cafa3374a9512d326d86938a018e09526143e6
+ version: '1.16'
+ token-macro:
+ source_hash: 6c5361d99e40fe053b30d3f12d865ae7804c78776d1f9b236ef91e49ba773331
+ version: '2.13'
+ trilead-api:
+ source_hash: 62b46838e493cfc6950382b4e4975d865cd3bfbfc58ada704b9dd96ff101e457
+ version: 1.0.13
+ variant:
+ source_hash: 4c2985249aa9223dd4471898b0fe16849f7b2a16bf05870544062174605b67f3
+ version: '1.4'
+ windows-slaves:
+ source_hash: 139b628df407177ea8e939b438bfbca5922e2b7e6a0ea2809c5ca895c671bf32
+ version: '1.0'
+ workflow-aggregator:
+ source_hash: f5122377769a5e43ee4c2d88c720dd893054c3658fc4d29f21d362eabcaac86a
+ version: '2.5'
+ workflow-api:
+ source_hash: b82d12b6765791536a38090b70d03953e61fb0830e68ef994ed1fdab68f4897b
+ version: 1138.v619fd5201b_2f
+ workflow-basic-steps:
+ source_hash: 3cb39af3c0c8a83be7a6ff987901c04940cdf442e02ee44a15c99e829b510506
+ version: '2.24'
+ workflow-cps:
+ source_hash: 043cc00edc77a659de86a712a6d301c9964e81e1b7b10f4e23f224932d235c37
+ version: 2659.v52d3de6044d0
+ workflow-cps-global-lib:
+ source_hash: febe5b4f114f771b535f0de326f39a46f0d8d6bd81ce072e448a8ce6b2eca499
+ version: '2.19'
+ workflow-durable-task-step:
+ source_hash: 9c764107396216791d3c8ed89d7398f8ffe56628e6173ff497d92d9a841c0cca
+ version: '2.40'
+ workflow-job:
+ source_hash: 79f3373e4471f3f3019f6d6dd9df0384f9edf7a4423b7dd390755aba723eeb30
+ version: 1145.v7f2433caa07f
+ workflow-multibranch:
+ source_hash: 374ff453a7c249061d72a98be13e02c2df22716f6ed946b1e3ab30ad9bba1616
+ version: '2.24'
+ workflow-remote-loader:
+ source_hash: ad1edf0c8fe7afc2f5266e22a30883f14a1b39c03a2f3e27dd093ec55be7aa03
+ version: '1.5'
+ workflow-scm-step:
+ source_hash: 6a97728795e3a77104760e5fca74d42c3d20755173675f706196ac142209c5e4
+ version: '2.13'
+ workflow-step-api:
+ source_hash: a05122f286e4be35f438df26fb13c54d9190a7ba2905c0e543b90ec0e8c644ca
+ version: 622.vb_8e7c15b_c95a_
+ workflow-support:
+ source_hash: e88769cb88a05277a2df8d8793bba34550f223e27161bfb44194c0918ec93138
+ version: '3.8'