БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

Π”ΠΎΠ±Π°Ρ€ Π΄Π΅Π½, Ρ…Π΅Π±Ρ€Π΅Ρ˜ΡΠΊΠΈ!

ДСнСс Π±ΠΈ сакал Π΄Π° сподСлам Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½Π°Ρ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ ΠŸΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΠΊ Active Choices Π½Π°ΠΏΡ€Π°Π²Π΅Ρ‚Π΅ ја Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π²ΠΎ ЏСнкинс Π½Π°Ρ˜ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Ρ‚Π° ΠΈ Π½Π°Ρ˜ΠΏΡ€ΠΈΡ˜Π°Ρ‚Π½Π° Π·Π° корисницитС.

Π’ΠΎΠ²Π΅Π΄

Π’Π°ΠΊΠ²Π°Ρ‚Π° ΠΊΡ€Π°Ρ‚Π΅Π½ΠΊΠ° ΠΊΠ°ΠΊΠΎ DevOps вСќС Π½Π΅ Π΅ Π½Π΅ΡˆΡ‚ΠΎ Π½ΠΎΠ²ΠΎ Π·Π° ИВ Π·Π°Π΅Π΄Π½ΠΈΡ†Π°Ρ‚Π°. Π—Π° ΠΌΠ½ΠΎΠ³Ρƒ Π»ΡƒΡ“Π΅, Ρ„Ρ€Π°Π·Π°Ρ‚Π° β€žΠ½Π°ΠΏΡ€Π°Π²ΠΈ DevOpsβ€œ Π΅ ΠΏΠΎΠ²Ρ€Π·Π°Π½Π° со Π½Π΅ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠ°Π³ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΏΡ‡Π΅, ΠΊΠΎΠ³Π° ќС сС ΠΊΠ»ΠΈΠΊΠ½Π΅, ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° автоматски сС ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π° Π²ΠΎ распорСдСна ΠΈ тСстирана Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° (сè Π΅ Π²ΡΡƒΡˆΠ½ΠΎΡΡ‚ ΠΏΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½ΠΎ, Π½ΠΎ Π½ΠΈΠ΅ сС апстрахирамС ΠΎΠ΄ ситС процСси).

Π’Π°ΠΊΠ°, Π΄ΠΎΠ±ΠΈΠ²ΠΌΠ΅ Π½Π°Ρ€Π΅Π΄Π±Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Ρ‚Π°ΠΊΠ²ΠΎ ΠΌΠ°Π³ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΏΡ‡Π΅ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ°Ρ‚ администраторитС Π΄Π° ја распорСдат Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° со Π΅Π΄Π΅Π½ ΠΊΠ»ΠΈΠΊ. ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²ΠΈ Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΎΠ²Π°Π° Π·Π°Π΄Π°Ρ‡Π°: ΠΎΠ΄ ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Π±ΠΎΡ‚ Π·Π° кој Π±ΠΈΠ»ΠΎ ΠΎΠ΄ инстант-ΠΌΠ΅ΡΠΈΠ½ΡŸΠ΅Ρ€ΠΈΡ‚Π΅ Π΄ΠΎ Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° посСбна Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°. Π‘Π΅ΠΏΠ°ΠΊ, сСто ΠΎΠ²Π° ја ΠΈΠΌΠ° истата Ρ†Π΅Π» - Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ Π·Π°ΠΏΠΎΡ‡Π½ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°Ρ‚Π° ΠΈ Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΡˆΡ‚ΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ потранспарСнтно ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ.

Π’ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜ ќС користимС ЏСнкинс.


БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

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

Π‘ΠΎΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ЏСнкинс ΡˆΡ‚ΠΎ ќС Π·Π°ΠΏΠΎΡ‡Π½Π΅ со ΠΈΠ·Π³Ρ€Π°Π΄Π±Π° ΠΈ (ΠΈΠ»ΠΈ) Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΈΠ·Π±Ρ€Π°Π½Π°Ρ‚Π° микросСрвис ΠΎΠ΄ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°.

БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

ВнСсСни ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ

ИмамС Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° ΠΊΠΎΠΈ Π³ΠΎ содрТат ΠΈΠ·Π²ΠΎΡ€Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ микросСрвиси.

Π”Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ

Π‘Π»Π΅Π΄Π½ΠΈΠ²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π΄ΠΎΠ±ΠΈΡ˜Π°Ρ‚ ΠΊΠ°ΠΊΠΎ Π²Π»Π΅Π· Π²ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°:

  1. URL-Ρ‚ΠΎ Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ со ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π° микросСрвис ΡˆΡ‚ΠΎ сакамС Π΄Π° Π³ΠΎ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌΠ΅ ΠΈ распорСдимС ΠΏΡ€ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π°.
  2. ID Π½Π° Π·Π°Π»ΠΎΠΆΠ±Π°Ρ‚Π° ΠΎΠ΄ која ќС сС појави ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°Ρ‚Π°.

КАКО ШВО Π•

НајлСсСн Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС постигнС ΠΎΠ²Π°Π° Π·Π°Π΄Π°Ρ‡Π° Π΅ Π΄Π° сС создадат Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΡ‚ String.

БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, корисникот ќС Ρ‚Ρ€Π΅Π±Π° Ρ€Π°Ρ‡Π½ΠΎ Π΄Π° ја внСсС ΠΏΠ°Ρ‚Π΅ΠΊΠ°Ρ‚Π° Π΄ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΡ‚ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅, ΡˆΡ‚ΠΎ, Π³Π»Π΅Π΄Π°Ρ‚Π΅, Π½Π΅ Π΅ сосСма ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ.

БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

КАКО ДА Π‘Π˜Π”Π•Π’Π•

Π‘Π΅Π³Π° ајдС Π΄Π° ΠΏΡ€ΠΎΠ±Π°ΠΌΠ΅ Π΄Ρ€ΡƒΠ³ Ρ‚ΠΈΠΏ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° Π΄Π° Π³ΠΈ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ситС Π½Π΅Π³ΠΎΠ²ΠΈ прСдности.
АјдС Π΄Π° Π³ΠΎ создадСмС ΠΏΡ€Π²ΠΈΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ со Ρ‚ΠΈΠΏΠΎΡ‚ Π˜Π·Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€, Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ - Active Choices Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€. Π’ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ со Ρ‚ΠΈΠΏ Π˜Π·Π±ΠΎΡ€, Π²ΠΎ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Π˜Π·Π±ΠΎΡ€ΠΈ Ρ€Π°Ρ‡Π½ΠΎ ќС Π³ΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ ΠΈΠΌΠΈΡšΠ°Ρ‚Π° Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π°Ρ‚Π° ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π΅ Π·Π°Ρ‡ΡƒΠ²Π°Π½ ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ микросСрвиси.

БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

Ако Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π° ΠΈ сС Π΄ΠΎΠΏΠ°Π΄Π½Π΅ овој напис, Ρ‚ΠΎΠ³Π°Ρˆ Π²ΠΎ слСдната ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° ќС Π³ΠΎ опишам процСсот Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π²ΠΎ ЏСнкинс, ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ опис ΠΏΡ€Π΅ΠΊΡƒ ΠΊΠΎΠ΄ (ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ΄), Ρ‚.Π΅. Π½Π΅ΠΌΠ° Π΄Π° Ρ‚Ρ€Π΅Π±Π° Ρ€Π°Ρ‡Π½ΠΎ Π΄Π° внСсувамС имиња Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° ΠΈ Π΄Π° создавамС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, сè ќС сС случи автоматски (Π½Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ΄ ќС Π΄ΠΎΠ±ΠΈΠ΅ список со ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° ΠΎΠ΄ SCM ΠΈ ќС создадС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ со ΠΎΠ²Π°Π° листа).

ВрСдноститС Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ ќС сС ΠΏΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°Π°Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ, Π²ΠΎ зависност ΠΎΠ΄ Ρ‚ΠΎΠ° која врСдност ја Π·Π΅ΠΌΠ° ΠΏΡ€Π²ΠΈΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ (тСст1 ΠΈΠ»ΠΈ тСст2), бидСјќи сСкоС ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ ΠΈΠΌΠ° своја листа Π½Π° обврски.

Active Choices Π Π΅Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ Π³ΠΈ ΠΈΠΌΠ° слСднитС полиња Π·Π° ΠΏΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°ΡšΠ΅:

  1. ИмС – ΠΈΠΌΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€.
  2. Π‘ΠΊΡ€ΠΈΠΏΡ‚Π° – ΠΊΠΎΠ΄ кој ќС сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° сСкогаш ΠΊΠΎΠ³Π° ќС сС смСни врСдноста Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚ ΠΎΠ΄ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Referenced parameter (Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜, ΠΊΠΎΠ³Π° ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ test1 ΠΈ test2).
  3. Опис – ΠΊΡ€Π°Ρ‚ΠΎΠΊ опис Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚.
  4. Π’ΠΈΠΏ Π½Π° ΠΈΠ·Π±ΠΎΡ€ – Π²ΠΈΠ΄ΠΎΡ‚ Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΎΡ‚ ΡˆΡ‚ΠΎ Π³ΠΎ Π²Ρ€Π°ΡœΠ° скриптата (Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜ ќС Π³ΠΎ Π²Ρ€Π°Ρ‚ΠΈΠΌΠ΅ html ΠΊΠΎΠ΄ΠΎΡ‚).
  5. Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€Π°Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ – ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ΠΎΡ‚, ΠΊΠΎΠ³Π° ќС сС смСни врСдноста, ќС сС ΠΈΠ·Π²Ρ€ΡˆΠΈ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΎΠ΄ Π΄Π΅Π»ΠΎΡ‚ Script.

БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

АјдС Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ со ΠΏΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½Π°Ρ˜Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅ Π²ΠΎ овој ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€. ΠŸΠΎΠ½ΡƒΠ΄Π΅Π½ΠΈ Π½ΠΈ сС Π΄Π²Π° Π²ΠΈΠ΄Π° Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π·Π° ΠΈΠ·Π±ΠΎΡ€: ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π‘ΠΊΡ€ΠΈΠΏΡ‚Π° Groovy ΠΈΠ»ΠΈ Π‘ΠΊΡ€ΠΈΠΏΡ‚Π»Π΅Ρ€ Π‘ΠΊΡ€ΠΈΠΏΡ‚Π°.
Π“ΠΎ ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡ€Π²ΠΎΡ‚ΠΎ, бидСјќи 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 ΠΈ ја Π΄ΠΎΠ±ΠΈΠ²Π° ΠΏΠΎΡ€Π°ΠΊΠ°Ρ‚Π° Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΈ Π·Π°Π»ΠΎΠΆΠ±Π° Π·Π° ситС обврски Π·Π° Π΄Π°Π΄Π΅Π½Π° микросСрвис.
Како ΡˆΡ‚ΠΎ спомСнавмС ΠΏΠΎΡ€Π°Π½ΠΎ, овој ΠΊΠΎΠ΄ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π²Ρ€Π°Ρ‚ΠΈ html ΡˆΡ‚ΠΎ ќС Π±ΠΈΠ΄Π΅ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ Π½Π° страницата Π˜Π·Π³Ρ€Π°Π΄Π±Π° со ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ ЏСнкинс, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π³ΠΈ Π·Π°Π²ΠΈΡ‚ΠΊΡƒΠ²Π°ΠΌΠ΅ ситС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈ врСдности ΠΎΠ΄ Bitbucket Π²ΠΎ список ΠΈ Π³ΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΠΌΠ΅ Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅.

ΠžΡ‚ΠΊΠ°ΠΊΠΎ ќС Π³ΠΈ Π·Π°Π²Ρ€ΡˆΠΈΠΌΠ΅ ситС Ρ‡Π΅ΠΊΠΎΡ€ΠΈ, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ Ρ‚ΠΎΠ»ΠΊΡƒ ΡƒΠ±Π°Π²Π° страница Π˜Π·Π³Ρ€Π°Π΄Π±Π° со ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ.

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

БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

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

БоздавањС Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ЏСнкинс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²Π° Π·Π° корисницитС

БогласСтС сС Π΄Π΅ΠΊΠ° Π½Π° корисникот ќС ΠΌΡƒ Π±ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° со Π²Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Π½Π° овој Π½Π°Ρ‡ΠΈΠ½ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π΄Π° Π³ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚Π΅ URL-Ρ‚ΠΎ сСкој ΠΏΠ°Ρ‚ ΠΈ Π΄Π° Π³ΠΎ Π±Π°Ρ€Π°Ρ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΠΎΡ‚ commit id.

PS Оваа ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π΄Π°Π²Π° ΠΌΠ½ΠΎΠ³Ρƒ поСдноставСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€, кој ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΎΠ΄ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π²ΠΎ ΠΎΠ²Π°Π° Ρ„ΠΎΡ€ΠΌΠ°, бидСјќи склоповитС ΠΈΠΌΠ°Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ повСќС Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, Π½ΠΎ Ρ†Π΅Π»Ρ‚Π° Π½Π° овој напис бСшС Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π°, Π° Π½Π΅ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ПББ Како ΡˆΡ‚ΠΎ напишав ΠΏΠΎΡ€Π°Π½ΠΎ, Π°ΠΊΠΎ овој напис Π΅ корисСн, Ρ‚ΠΎΠ³Π°Ρˆ слСдниот ќС Π±ΠΈΠ΄Π΅ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° ЏСнкинс ΠΏΡ€Π΅ΠΊΡƒ ΠΊΠΎΠ΄.

Π˜Π·Π²ΠΎΡ€: www.habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π΄ΠΎΠ²Π΅Ρ€Π»ΠΈΠ² хостинг Π·Π° ΡΠ°Ρ˜Ρ‚ΠΎΠ²ΠΈ со DDoS Π·Π°ΡˆΡ‚ΠΈΡ‚Π°, VPS VDS сСрвСри πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ сигурСн Π²Π΅Π±-хостинг со DDoS Π·Π°ΡˆΡ‚ΠΈΡ‚Π°, VPS VDS сСрвСри | ProHoster