БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

Π”ΠΎΠ±ΡŠΡ€ Π΄Π΅Π½, Π₯Π°Π±Ρ€!

ДнСс Π±ΠΈΡ… искал Π΄Π° сподСля Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½ΠΈΡ‚Π΅, ΠΏΠΎ ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Active Choices Plugin Π·Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π² Jenkins Π½Π°ΠΉ-ΡƒΠ½ΠΈΡ‚Π°Ρ€Π΅Π½ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π° потрСбитСля.

Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

Π‘ΡŠΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ DevOps ΠΎΡ‚Π΄Π°Π²Π½Π° Π½Π΅ Π΅ Π½Π΅Ρ‰ΠΎ Π½ΠΎΠ²ΠΎ Π·Π° IT общността. Π—Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π° Ρ„Ρ€Π°Π·Π°Ρ‚Π° "Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ DevOps" асоциира с някакъв вълшСбСн Π±ΡƒΡ‚ΠΎΠ½, ΠΏΡ€ΠΈ натисканСто Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° Π² Ρ€Π°Π·Π³ΡŠΡ€Π½Π°Ρ‚ΠΎ ΠΈ тСствано ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ всичко Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-слоТно, Π½ΠΎ Ρ‰Π΅ сС абстрахирамС ΠΎΡ‚ всички процСси).

И Ρ‚Π°ΠΊΠ°, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚Π°ΠΊΡŠΠ² вълшСбСн Π±ΡƒΡ‚ΠΎΠ½, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ администраторитС Π΄Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с Π΅Π΄Π½ΠΎ Ρ‰Ρ€Π°ΠΊΠ²Π°Π½Π΅. Има Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Ρ‚Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π°: ΠΎΡ‚ написванС Π½Π° Π±ΠΎΡ‚ Π·Π° някой ΠΎΡ‚ ΠΌΠ΅ΡΠΈΠ½Π΄ΠΆΡŠΡ€ΠΈΡ‚Π΅ Π΄ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° Ρ†Π΅Π»Ρ‚Π° Π΅ Π΅Π΄Π½Π° – Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ стартиранСто Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ максимално ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π’ нашия случай Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Jenkins.


БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

Π—Π°Π΄Π°Ρ‡Π°

Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΡƒΠ΄ΠΎΠ±Π½Π° Jenkins Ρ€Π°Π±ΠΎΡ‚Π°, която Ρ‰Π΅ стартира ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ ΠΈ (ΠΈΠ»ΠΈ) Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° избрания микросСрвиз с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° вСрсия.

БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

Π’Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ

ИмамС няколко рСпозитория, Π² ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° изходният ΠΊΠΎΠ΄ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ микросСрвизи.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅

На Π²Ρ…ΠΎΠ΄Π° Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° трябва Π΄Π° ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ слСднитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ:

  1. URL Π½Π° рСпозитория с ΠΊΠΎΠ΄Π° Π½Π° микросСрвиза, ΠΊΠΎΠΉΡ‚ΠΎ искамС Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ ΠΈ Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°ΠΌΠ΅ ΠΏΡ€ΠΈ стартиранС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°.
  2. ID Π½Π° ΠΊΠΎΠΌΠΈΡ‚Π°, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ.

AS IS

Най-простият Π½Π°Ρ‡ΠΈΠ½ Π·Π° изпълнСниС Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½Π°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Π΅ Π΄Π° създадСм Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° ΠΎΡ‚ Ρ‚ΠΈΠΏ String.

БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

Π’ Ρ‚ΠΎΠ·ΠΈ случай потрСбитСлят Ρ‰Π΅ трябва Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° въвСдС ΠΏΡŠΡ‚Ρ Π΄ΠΎ рСпозитория ΠΈ ID Π½Π° ΠΊΠΎΠΌΠΈΡ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ, Π΄Π° призная, Π½Π΅ Π΅ особСно ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

AS TO BE

А сСга Π΄Π° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Ρ€ΡƒΠ³ Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, Π·Π° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ всичкитС ΠΌΡƒ прСдимства.
Π©Π΅ създадСм ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ΠΎΡ‚ Ρ‚ΠΈΠΏ Choice Parameter, втория β€” Active Choices Reactive Reference Parameter. Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° с Ρ‚ΠΈΠΏ Choice Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ€ΡŠΡ‡Π½ΠΎ Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Choices ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ микросСрвизи.

БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

Ако статията Π΅ интСрСсна Π·Π° аудиторията, Π² слСдващата статия Ρ‰Π΅ опиша процСса ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π² Jenkins, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ описаниС Ρ‡Ρ€Π΅Π· ΠΊΠΎΠ΄ (Configuration as code), Ρ‚.Π΅. няма Π΄Π° Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€ΡŠΡ‡Π½ΠΎ Π΄Π° въвСТдамС ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ ΠΈ Π΄Π° създавамС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, всичко Ρ‰Π΅ сС случи Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ (Π½Π°ΡˆΠΈΡΡ‚ ΠΊΠΎΠ΄ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ списък с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΡ‚ SCM ΠΈ Ρ‰Π΅ създадС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ с Ρ‚ΠΎΠ·ΠΈ списък).

БтойноститС Π½Π° втория ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Ρ‰Π΅ сС Π·Π°ΠΏΡŠΠ»Π²Π°Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ, Π² зависимост ΠΎΡ‚ Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‰Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ (test1 ΠΈΠ»ΠΈ test2), Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всСки Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠΌΠ° свой списък с ΠΊΠΎΠΌΠΈΡ‚ΠΈ.

Active Choices Reactive Reference Parameter ΠΈΠΌΠ° слСднитС ΠΏΠΎΠ»Π΅Ρ‚Π° Π·Π° попълванС:

  1. Name – ΠΈΠΌΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°.
  2. Π‘ΠΊΡ€ΠΈΠΏΡ‚ – ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС изпълнява всСки ΠΏΡŠΡ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стойността Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Referenced parameter бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½Π° (Π² нашия случай, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ test1 ΠΈ test2).
  3. ОписаниС – ΠΊΡ€Π°Ρ‚ΠΊΠΎ описаниС Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°.
  4. Π’ΠΈΠΏ ΠΈΠ·Π±ΠΎΡ€ – Ρ‚ΠΈΠΏ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π°, ΠΊΠΎΠΉΡ‚ΠΎ ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ (Π² нашия случай Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ΠΌ html ΠΊΠΎΠ΄).
  5. Referenced parameter – ΠΈΠΌΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°, ΠΏΡ€ΠΈ промяна Π½Π° стойността Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС изпълнява ΠΊΠΎΠ΄ΡŠΡ‚ ΠΎΡ‚ сСкцията Π‘ΠΊΡ€ΠΈΠΏΡ‚.

БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ към попълванС Π½Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅ Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€. Π—Π° ΠΈΠ·Π±ΠΎΡ€ Π½ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° рСализация: ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Groovy Script ΠΈΠ»ΠΈ Scriptler Script.
Π˜Π·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Scriptler Π΅ само плъгин, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°ΠΏΠ°Π·Π²Π° Π²Π΅Ρ‡Π΅ написанитС ΠΎΡ‚ вас скриптовС ΠΈ позволява Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ ΠΈ поставянС.

Groovy ΠΊΠΎΠ΄ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° всички ΠΊΠΎΠΌΠΈΡ‚ΠΈ ΠΎΡ‚ избрания Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

AUTH = "Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π° Π² Base64"                           
GIT_URL = "url Π΄ΠΎ Π²Π°ΡˆΠ΅Ρ‚ΠΎ SCM (https://bitbucket.org/)"                       
PROJECT_NAME = "ΠΈΠΌΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Π°Ρ‚Π° област, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅"

def htmlBuild() {
    html = """
            <html>
            <head>
            <meta charset="windows-1251">
            <style type="text/css">
            div.grayTable {
            text-align: left;
            border-collapse: collapse;
            }
            .divTable.grayTable .divTableCell, .divTable.grayTable .divTableHead {
            padding: 0px 3px;
            }
            .divTable.grayTable .divTableBody .divTableCell {
            font-size: 13px;
            }
            </style>
            </head>
            <body>
        """

    def commitOptions = ""
    getCommitsForMicroservice(MICROSERVICE_NAME).each {
        commitOptions += "<option style='font-style: italic' value='COMMIT=${it.getKey()}'>${it}</option>"
    }
    html += """<p style="display: inline-block;">
        <select id="commit_id" size="1" name="value">
            ${commitOptions}
        </select></p></div>"""

    html += """
            </div>
            </div>
            </div>
            </body>
            </html>
         """
    return html
}

def getCommitsForMicroservice(microserviceRepo) {
    def commits = [:]
    def endpoint = GIT_URL + "\/rest\/api\/1.0\/projects\/${PROJECT_NAME}\/repos\/${microserviceRepo}\/commits"
    def conn = new URL(endpoint).openConnection()
    conn.setRequestProperty("Authorization", "Basic ${AUTH}")
    def response = new groovy.json.JsonSlurper().parseText(conn.content.text)
    response.values.each {
        commits.put(it.displayId, it.message)
    }
    return commits
}

return htmlBuild()

Ако Π½Π΅ сС Π·Π°Π΄ΡŠΠ»Π±ΠΎΡ‡Π°Π²Π°ΠΌΠ΅ Π² Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΡ‚Π΅, Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° микросСрвиса (MICROSERVICE_NAME), ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° заявка Π² Bitbucket (ΠΌΠ΅Ρ‚ΠΎΠ΄ getCommitsForMicroservice), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ API, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° id ΠΈ commit message Π½Π° всички ΠΊΠΎΠΌΠΈΡ‚ΠΈ Π·Π° Ρ‚ΠΎΠ·ΠΈ микросСрвис.
ΠšΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ спомСнахмС, Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ трябва Π΄Π° Π²ΡŠΡ€Π½Π΅ html, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π½Π° страницата Build with Parameters Π² Jenkins, Π·Π°Ρ‚ΠΎΠ²Π° всички ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ стойности ΠΎΡ‚ Bitbucket ΠΎΠ±Π²ΠΈΠ²Π°ΠΌΠ΅ Π² списък ΠΈ добавямС Π² select.

Π‘Π»Π΅Π΄ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° всички дСйствия трябва Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠ°Π²Π° красива страница. Build with Parameters.

Ако смС ΠΈΠ·Π±Ρ€Π°Π»ΠΈ микросСрвис test1:

БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

Ако смС ΠΈΠ·Π±Ρ€Π°Π»ΠΈ микросСрвис test2:

БъздаванС Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π² Jenkins job, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° си ΡƒΠ΄ΠΎΠ±Π½Π° Π·Π° потрСбитСля

Π‘ΡŠΠ³Π»Π°ΡΠ΅Ρ‚Π΅ сС, Ρ‡Π΅ Π½Π° потрСбитСля Ρ‰Π΅ ΠΌΡƒ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° взаимодСйства с Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, вмСсто всСки ΠΏΡŠΡ‚ Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π° url ΠΈ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈ нуТния commit id.

P.S. Π’ Ρ‚Π°Π·ΠΈ статия Π΅ прСдставСн ΠΌΠ½ΠΎΠ³ΠΎ опростСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ, вСроятно, няма практичСско ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚ΠΎΠ·ΠΈ Π²ΠΈΠ΄, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ сборкитС ΠΈΠΌΠ°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, Π½ΠΎ Ρ†Π΅Π»Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ статия бСшС Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° инструмСнта, Π° Π½Π΅ Π΄Π° прСдостави Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

P.S.S. ΠšΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ писах ΠΏΠΎ-Ρ€Π°Π½ΠΎ, Π°ΠΊΠΎ Ρ‚Π°Π·ΠΈ статия Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π°, слСдващата Ρ‰Π΅ бъдС Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ Jenkins Ρ‡Ρ€Π΅Π· ΠΊΠΎΠ΄.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster