Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Jenkins. Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π² Bitbucket

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucketΠ’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ постС я рассказывал ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Jenkins Π½Π° сСрвСр ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Linux-дистрибутива сСмСйства Debian. Π’ этом ΠΆΠ΅ я ΠΊΡ€Π°Ρ‚ΠΊΠΎ расскаТу ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒ Jenkins Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сборку ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ (push’у ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²) Π² Π²Π΅Ρ‚ΠΊΡƒ рСпозитория Bitbucket.

Подобная связка осущСствляСтся Π² Π΄Π²Π° этапа: сначала ΠΌΡ‹ настраиваСм Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… задания ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… рСпозитория устанавливаСм Ρ…ΡƒΠΊ.

Настройка задания Π² Jenkins

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° страницу нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² ΠΏΠ°Π½Π΅Π»ΠΈ Β«ConfigureΒ». Π—Π΄Π΅ΡΡŒ, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Build TriggersΒ» Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² сборки ΠΏΡƒΡ‚Ρ‘ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π³Π°Π»ΠΊΠΈ Β«Trigger builds remotely (e.g., from scripts)Β» ΠΈ установки Ρ‚ΠΎΠΊΠ΅Π½Π°. Π’ΠΎΠΊΠ΅Π½ Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° Ρƒ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Π±ΠΎΡ‚ΠΎΠ², ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΡ… адрСса Π½Π΅ Π±Ρ‹Π»ΠΎ возмоТности ΡƒΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Π°ΠΌ DoS. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ. Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» достаточной Π΄Π»ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€. Π—Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ всСгда Π±ΡƒΠ΄Π΅Ρ‚ доступСн Π² настройках задания Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Настройка Ρ…ΡƒΠΊΠ° Π² Bitbucket

Π—Π°ΠΉΠ΄Ρ‘ΠΌ Π² настройки рСпозитория ΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π» Β«HooksΒ», Π° Π·Π°Ρ‚Π΅ΠΌ создадим Π½ΠΎΠ²Ρ‹ΠΉ Ρ…ΡƒΠΊ Ρ‚ΠΈΠΏΠ° Β«JenkinsΒ». ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ прСдстанСт «окошко», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

ОписаниС настроСк ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Π½Π° английском ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ…ΡƒΠΊ ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ связку Π² Π΄Π΅Π»Π΅.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹

ΠžΠΏΡ€ΠΎΡ рСпозитория

Одним ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π° Π·Π°ΠΌΠ΅Π½Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ опция Β«Poll SCMΒ» Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Build TriggersΒ» задания Jenkins. Однако Ρ‚Π°ΠΊΠΎΠΉ способ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ CRON ΠΈ выполняСт ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² сравнСнии с описанным Π²Ρ‹ΡˆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ.

BitBucket Plugin

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ…ΡƒΠΊΠΈ с POST-запросами Π½Π° Bitbucket. Π•Π³ΠΎ минус Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ, Π² случаС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ доступа ΠΊ систСмС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ сборку нСзависимо ΠΎΡ‚ событий рСпозитория. Π₯отя, Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ случаС ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ нСсколько Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ, довольно простым способом ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Jenkins ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π² Bitbucket. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² унивСрсалСн ΠΈ Π²Ρ‹ Π±Π΅Π· особого Ρ‚Ρ€ΡƒΠ΄Π° смоТСтС Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ дСйствия ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π½Π° Github ΠΈΠ»ΠΈ ΠΆΠ΅ вовсС Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ сборку собствСнным скриптом ΠΈΠ· своСго рСпозитория ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

OpenShift + Jenkins + Bitbucket, нСпрСрывная интСграция ΠΈ публикация ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ, ΠΊΠ°ΠΊ быстро Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ срСду для сборки, тСстирования ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ OpenShift Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ PHP ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΠ΄Ρƒ OpenShift online, Π½ΠΎ всё это ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈ Π½Π° собствСнных сСрвСрах ΠΈΠ»ΠΈ Π² VirtualBox (Π΅ΡΡ‚ΡŒ готовая сборка). Git-сСрвСром для хранСния ΠΈ вСрсионирования ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Bitbucket.

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ рСгистрации Π² систСмС, бСсплатный Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ мСсто Π½Π° сСрвСрах ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² связкС. А Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Π² Π΄ΠΎΠΌΠ΅Π½Π΅ rhcloud.com, Π²ΠΈΠ΄Π° application-username.rhcloud.com. Π­Ρ‚ΠΎΠ³ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ достаточно для тСстирования ΠΈ экспСримСнтов. Π₯ΠΎΡ‚ΡŒ я ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π» PHP-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π½ΠΎ OpenShift позволяСт Ρ‚Π°ΠΊΠΈΠΌ-ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². И Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ вмСсто Bitbucket-Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GitHub ΠΈΠ»ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ систСму контроля вСрсий. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±Π»Π°ΠΊΠ° крутятся docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ OpenShift Client Tools, Π½ΠΎ для Π±Π°Π·ΠΎΠ²Ρ‹Ρ… настроСк Π²ΠΏΠΎΠ»Π½Π΅ достаточно ΠΈ Π²Π΅Π±-интСрфСйса.

Π’ OpenShift-Π΅ создаём ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° прилоТСния, Π² нашСм случаС PHP 5.4. Π‘Ρ‚Ρ€Π°Π½Π½ΠΎ, Ρ‡Ρ‚ΠΎ староват, ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ OpenShift-Π° Π½Π° своих сСрвСрах Π³ΠΎΡ€Π°Π·Π΄ΠΎ свСТСС вСрсии ΠΈ большС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

Имя Ρƒ Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ php – ΠΎΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ URL ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ названия зависимых настроСк.

Π’ свойствах ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с ДТСнкинсом.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ создаст Π² ДТСнкинсС Π·Π°Π΄Π°Ρ‡Ρƒ php-build с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ настройками, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ дальшС ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ. На мастСр-Π½ΠΎΠ΄Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сборки ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ (количСство сборщиков = 0), Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π½ΠΎ Π²ΠΎΡ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ – Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ покопавшись Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Ρ€ΡƒΠΊΠ°ΠΌΠΈ (ΠΈ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ).

Π˜Π΄Ρ‘ΠΌ Π² настройки Π·Π°Π΄Π°Ρ‡ΠΈ php-build Π² ДТСнкинсС. Она ΡƒΠΆΠ΅ настроСна ΠΏΠΎΠ΄ сборку Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅-сборщикС ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ php, Π½ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ bitbucket. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ git Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΈ, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ с Π½ΠΈΠΌ.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Π“Π΄Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ bitbucket-Π°.

ДТСнкинс ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎ ssh ΠΊΠ»ΡŽΡ‡Π°ΠΌ, Π½ΠΎ Ρ‚ΡƒΡ‚ ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ ограничСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° OpenShift, ΠΈ Π½Π΅ удаётся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° доступ ΠΊ хосту bitbucket-Π°. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ поковыряв Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° jenkins.

НиТС, Π² ΠΏΠΎΠ»Π΅ Β«Branches to buildΒ», указываСтся Π²Π΅Ρ‚ΠΊΠ°, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ. Π˜ΠΌΠ΅Π΅Ρ‚ смысл ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ явно мастСра (*/master).

Π’ полях Β«Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ сборки» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΠΏΡ†ΠΈΠΈ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ автоматичСски. МоТно это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ webhook-Π°ΠΌ; совмСстно с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ; пСриодичСски ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ git Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ, Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ, ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ; ΠΈΠ»ΠΈ просто ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π΄Π²Π΅ ΠΎΠΏΡ†ΠΈΠΈ ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ webhook-Π°, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 ΠΌΠΈΠ½ΡƒΡ‚.

Π’ настройках Π‘Π±ΠΎΡ€ΠΊΠ° β†’ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ shell ΡƒΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ шаблон сборки, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ php.

ПослС коммСнтария Β« # Run tests here Β» Π½Π°Π΄ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сборки, ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ, Π»ΠΈΠ±ΠΎ ΠΈΠ΄Ρ‘ΠΌ дальшС ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ, Π»ΠΈΠ±ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ.

ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ производятся Π² контСйнСрС–сборщикС Π² Π΅Π³ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π΅Π³ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ ограничСния Π½Π° возмоТности. Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΏΡ€ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠΈ собствСнного сСрвСра Jenkins-Π°, возмоТностСй ΠΈ контроля большС. А для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с OpenShift ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ rhc ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ДТСнкинса (хозяйкС Π½Π° Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ).

БохраняСм, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сборку. ΠŸΡ€ΠΈ этом ДТСнкинс ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ созданиС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°-сборщика Π² ΠΎΠ±Π»Π°ΠΊΠ΅ OpenShift с ΠΈΠΌΠ΅Π½Π΅ΠΌ phpbldr, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ настроСна Π·Π°Π΄Π°Ρ‡Π°. Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ нюанс: ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ поднимаСтся довольно Π΄ΠΎΠ»Π³ΠΎ ΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π°, Π·Π°Π΄Π°Ρ‡Π° сборки снимаСтся Π½Π΅ доТдавшись сборщика. Но, Ссли Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сборку Π΅Ρ‰Ρ‘ Ρ€Π°Π·, Ρ‚ΠΎ Π½Π° Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΌ сборщикС всё сразу ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚. Π’ свойствах ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«Builder TimeoutΒ», Π½ΠΎ ΠΎΠ½ ΠΏΡ€ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, Π° Π½Π΅ ΠΏΡ€ΠΎ это. Π•ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ сборки ΠΈ количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ, Π½ΠΎ ΠΎΠ½ΠΈ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚.

Π’ систСмных настройках ДТСнкинса ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя ΠΆΠΈΠ·Π½ΠΈ сборщика (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 15 ΠΌΠΈΠ½ΡƒΡ‚):

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

МаксимальноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² 60 ΠΌΠΈΠ½ΡƒΡ‚ ΠΏΡ€ΠΈΠ±ΠΈΡ‚ΠΎ гвоздями. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ-Π±Ρ‹ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ сборки, Π±Ρ‹Π» свободный слот ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

Для настройки сборки ΠΏΠΎ webhook-Π°ΠΌ, Π½ΡƒΠΆΠ½ΠΎ Π² свойствС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² bitbucket-Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ:
Settings β†’ webhooks β†’ add webhook ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ URL Jenkins-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² Π²ΠΈΠ΄Π΅:

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ свой Π»ΡƒΠ½ΠΎΠΏΠ°Ρ€ΠΊ для тСстирования ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². А Ссли всё это Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° своих мощностях, Ρ‚ΠΎ ΠΎΠ½ Π΅Ρ‰Ρ‘ ΠΈ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π΄Π° с дополнСниями.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

НастраиваСм Continuous Integration для Jenkins ΠΈ Bitbucket с werf

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° werf создана Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Ρ‘ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ CI/CD-систСмами. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом процСссС Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² эпилогС этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π½ΠΎ основноС Π΅Ρ‘ содСрТимоС β€” практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ CI Π² Jenkins ΠΈ Bitbucket.

ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π°ΡˆΠΈΡ… дСйствий ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Jenkins

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ задСйствованы:

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ: Manage Jenkins β†’ Configure System β†’ Global Pipeline Libraries.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

НуТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя, Π²Π΅Ρ‚Π²ΡŒ рСпозитория, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Jenkins Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π° Π² Source Code Management ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ адрСс ΠΈ доступ Π΄ΠΎ рСпозитория (Π² нашСм случаС β€” SSH-ΠΊΠ»ΡŽΡ‡ для доступа ReadOnly).

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Shared Library

Π’Π΅ΠΏΠ΅Ρ€ΡŒ приступим ΠΊ описанию самой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΎΡ‡Π΅Π½ΡŒ проста ΠΈ состоит всСго ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ:

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вСсь ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π±Ρ‹Π» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ описан Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π° Π² Jenkinsfile ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ дСплоя, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² 99,9% случаСв Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π˜Ρ‚Π°ΠΊ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π’Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ ΠΈΠ· Bitbucket

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Jenkins сам Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Bitbucket. Для этого Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ упомянутыС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹:

Π’Π°ΠΊΠΆΠ΅ трСбуСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ слуТСбного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с доступом ΠΊ рСпозиториям, Ρ‚.ΠΊ. Jenkins Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ вСсь Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· API. Π­Ρ‚ΠΎ касаСтся настройки ΠΊΠ°ΠΊ для cloud-вСрсии, Ρ‚Π°ΠΊ ΠΈ для собствСнного Bitbucket-сСрвСра.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк Jenkins:

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Π”Π°Π»Π΅Π΅ понадобится Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ source Π² Multibranch Pipeline, Ρ‡Ρ‚ΠΎ происходит Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ credentials (Bitbucket ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ имя ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ), Jenkins Π½Π°ΠΉΠ΄Π΅Ρ‚ всС доступныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· списка.

Π’ самом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΡ‹ полагались Π½Π° поиск Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ, Ρ‚.ΠΊ. Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅Ρ‚ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π° Jenkins ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π΄ΠΎΠ»Π³ΠΎ Β«Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡΒ», Ссли Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π­Ρ‚ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ограничСния, Ρ‚.ΠΊ. Ρ‚Π΅Π³ΠΈ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ΄ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Однако Java Regular Expressions β€” довольно Π³ΠΈΠ±ΠΊΠΈΠ΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ большой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅Ρ‚.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ: Ссли Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ совсСм ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ΠΈ ΠΎΡ‚ Π²Π΅Ρ‚ΠΎΠΊ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Source Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅Π³ΠΎΠ².

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

ПослС этого Jenkins с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сСрвис-Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° сам сходит Π² Bitbucket ΠΈ создаст webhook:

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Bitbucket Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ‹ (Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… Π²Π΅Ρ‚ΠΎΠΊ ΠΈ Ρ‚Π΅Π³ΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π»ΠΈ) ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ статус ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Bitbucket Π² послСднСм столбцС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°:

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket
Бтатусы β€” ΠΊΠ»ΠΈΠΊΠ°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅: ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΈΠ΄Ρ‹Π²Π°ΡŽΡ‚ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ Π² Jenkins

ПослСдний ΡˆΡ‚Ρ€ΠΈΡ… β€” ΠΏΡ€ΠΎ Jenkins, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π·Π° nginx proxy ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ location. Π’ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π² основных настройках ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ location, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ сам Π·Π½Π°Π», ΠΊΠ°ΠΊ выглядит Π΅Π³ΠΎ endpoint:

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Π‘Π΅Π· этого ссылки Π½Π° pipeline Π² Bitbucket Π±ΡƒΠ΄ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассмотрСн Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ настройки CI с использованиСм Jenkins, Bitbucket ΠΈ werf. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ являСтся ΠΏΠ°Π½Π°Ρ†Π΅Π΅ΠΉ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π°Ρ‘Ρ‚ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ своСго CI с использованиСм werf.

ВаТная Π΄Π΅Ρ‚Π°Π»ΡŒ: Π΄Π°ΠΆΠ΅ учитывая, Ρ‡Ρ‚ΠΎ статус ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π° отдаСтся Π² Bitbucket, Π½Π°ΠΌ всё Ρ€Π°Π²Π½ΠΎ приходится Β«Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΒ» Π² Jenkins, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ. Π’Ρ‹ΠΊΠ°Ρ‚ ΠΏΠΎ Ρ‚Π΅Π³Ρƒ Ρ‡Π΅Ρ€Π΅Π· webhook, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·: любой ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ‚Π΅Π³ придСтся Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ· Jenkins.

Π£ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ большой плюс β€” это Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. ΠœΡ‹ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² CI всё Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π₯отя ΠΈ ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… CI-систСм.

Π­ΠΏΠΈΠ»ΠΎΠ³: ΠΏΡ€ΠΎ werf ΠΈ CI/CD Π² Ρ†Π΅Π»ΠΎΠΌ

ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ werf с CI/CD-систСмами описан Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ для Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² шаги сводятся ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Bitbucket Server Integration

We’re collecting feedback at issues.jenkins-ci.org. Head there to see what issues have been created, or create a new issue using the component atlassian-bitbucket-server-integration-plugin.

The Bitbucket Server integration plugin is the easiest way to connect Jenkins to Bitbucket Server. With a few simple steps you can configure it to:

The plugin streamlines the entire configuration process and removes the need for multiple plugins to achieve the same workflow.

Plugin features

Requirements

Note: Bitbucket Server 5.6 to 7.3 are also supported, but they’re not recommended. This is because some plugin features are not available when using these versions. Instead, we recommend using Bitbucket Server 7.4+. With 7.0+ you can make use of pull request triggers for jobs. With 7.4+ you can set up an Application Link to have access to all plugin features.

In this document

Install the plugin

To install the plugin:

The status will change to Success when the plugin is installed.

Configure the plugin

To configure the plugin:

Add Bitbucket Server instance details

Bitbucket Server instances are added and configured at the system level. Once they’re added users can select them from the SCM when creating a Jenkins job. You must add at least one Bitbucket Server instance to Jenkins.

When adding a Bitbucket Server instance you must add at least one Bitbucket Server personal access token that is configured with project admin permissions. Doing this allows users to automatically set up build triggers when creating a Jenkins job.

Watch our video to find out how to do this, or see below for written instructions.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

To add a Bitbucket Server instance:

Create an Application Link

Creating an Application Link to Jenkins enables additional functionality in Bitbucket Server. Watch our video to find out how to do this, or see below for written instructions. This step is only relevant if you’re on Bitbucket 7.4+.

1. Register Bitbucket Server as a consumer

There are two parts to creating an Application Link. The first is done in Jenkins and involves registering Bitbucket Server as a consumer.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

To register a consumer:

After you save, you’ll be taken to a page called Application Link details. It’s a good idea to keep this page open when moving onto part 2 so you can copy the details across to Bitbucket Server.

You can also access the Application Link details page by going to Jenkins > Manage Jenkins > Manage Bitbucket Server consumers, and selecting the Application Link details for the consumer.

2. Create an Application Link to Jenkins

The second part is done in Bitbucket Server and involves creating an Application Link to Jenkins. Many of the details you need to do this are on the Application Link details page mentioned in step 1.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

To create the Application Link:

After a moment, your Jenkins instance will appear in the list of linked applications.

Use the plugin

Select a Bitbucket Server instance when creating a Freestyle Job

Once you’ve added a Bitbucket Server instance to Jenkins, users will be able to select it when creating a job. This will make it easier for them to select the repo to be cloned. They’ll also be able to select the Bitbucket Server build trigger to automatically create a webhook.

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

To select a Bitbucket Server instance when creating a Freestyle job:

Note: A Jenkinsfile is required when creating a Pipeline or Multibranch Pipeline job. Other pipeline scripting methods are not yet supported.

Create a Multibranch Pipeline

To use a different Jenkinsfile for different branches of your Bitbucket Server project, you need to create a Multibranch Pipeline and add the Jenkinsfile to the repo of each branch you want to build. Jenkins will then automatically find, manage, and execute these Pipelines.

Watch our video to find out how to do this, or read more about Multibranch Pipelines on Jenkins.io.

Additional documentation

Contribute to the plugin

Plugin development

This plugin uses Apache Maven for development and releases. It also uses Groovy as part of the presentation layer for the plugin. To build Groovy files you need to install the SDK.

Checkstyle

Alternatively, you can link to the pre-commit hook directly:

Building

To build the plugin run:

Running Jenkins with the plugin enabled

Debugging

To start Jenkins (and Maven) in debug mode run:

You can then run Bitbucket Server using AMPS with the following command:

This will start Bitbucket Server on http://localhost:7990/bitbucket.

Running tests

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucketΠšΠΎΡΠΌΠΎΠ½Π°Π²Ρ‚ Π² Π»ΠΎΠ΄ΠΊΠ΅

Π›ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠ³ ОлСга АбраТаСва ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, тСхнологиях ΠΈ ΠΎ ΠΆΠΈΠ·Π½ΠΈ

Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ

Облако ΠΌΠ΅Ρ‚ΠΎΠΊ

Π‘Π²Π΅ΠΆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

livelib.ru

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° обновлСния!

Настройка ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ jenkins + bitbucket + slack для php ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ jenkins ΠΊ bitbucket

Указанная Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ связка Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ процСсс deploy ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚.ΠΊ. ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π½Π΅ совсСм для этого. Π­Ρ‚Π° связка скорСС для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Ρ‚Ρ€Π΅ΠΊΠΈΠ½Π³Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ошибок ΠΈ качСства. Π’Π°ΠΊ ΠΆΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Slack, ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π»ΠΈ измСнСния ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… участников.

ИдСя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

Π’ качСствС систСмы контроля вСрсий Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Mercirial (hg). Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ 3 Π²Π΅Ρ‚ΠΊΠΈ – dev, staging, stable. На ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ настроСн свой хост Π½Π° сСрвСрС. Π­Ρ‚ΠΎ рСкомСндуСмая ΠΈ провСрСнная ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° дСплоя прилоТСния. ΠΠ°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ± этом написано Ρ‚ΡƒΡ‚ – http://guides.beanstalkapp.com/deployments/best-practices.html

Основной смысл Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² dev дСплоятся критичСскиС измСнСния, Π² staging Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΎΡ‚Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ stable. Ну Π° stable это Ρ‚ΠΎ, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½. Учитывая эту Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ Π°Π²Ρ‚ΠΎΠ΄Π΅ΠΏΠ»ΠΎΠΉ с jenkins стоит Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° staging. Для dev это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ эффСктивно Π½Π΅ получится, Ρ‚.ΠΊ. ΠΏΡ€ΠΈ критичСских измСнСниях ΠΏΠΎ большСй части приходится Π΄Π΅Π»Π°Ρ‚ΡŒ всС Ρ€ΡƒΠΊΠ°ΠΌΠΈ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ Π½Π° dev допустимы ошибки, Π° Π½Π° staging, Π² ΠΏΡ€Π΅Π΄Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠΌ состоянии, ΡƒΠΆΠ΅ Π½Π΅Ρ‚.

Настройка Jenkins ΠΈ ant

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° сСрвСр сам jenkins ΠΈ ant. Моя вСрсия jekins 2.7. ИмСнно Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ ant Π±ΡƒΠ΄ΡƒΡ‚ описаны шаги, послС выполнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ build ΠΏΡ€ΠΎΡˆΠ΅Π» успСно.

Π”Π°Π»ΡŒΡˆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ slack, ant ΠΈ bitbucket. Π£ мСня установлСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹: ant 1.2, bitbucket 1.1.0, cloverphp 0.4, cvs, git 2.3.5, git-client 1.17.1, junit 1.6, maven-plugin 2.10, mercurial 1.54, php 1.0, pmd 3.41, slack 1.8, xunit 1.96
На самом Π΄Π΅Π»Π΅ список Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‚ΡƒΡ‚ я оставил Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ для мСня.

Π”Π°Π»Π΅Π΅ для php ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ссылка с шаблоном – http://jenkins-php.org/.
ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π½Π° шагС установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… php инструмСнтов ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для jenkins приводится достаточно большой список. Π£ сСбя Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ ant с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ build.xml я оставил Ρ‚ΠΎΠ»ΡŒΠΊΠΎ lint ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° синтаксичСскиС ошибки ΠΈ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΠ½Π΅ понадобится phpunit, ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ±Ρ€Π°Π½ΠΎ. На самом Π΄Π΅Π»Π΅ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с минимального ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ всС ΠΏΠΎΡ‚ΠΎΠΌ.

НСобходимо ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚-шаблон Π² jenkins ΠΈ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ описано Ρ‚ΡƒΡ‚. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ php-template появится Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС jenkins.
Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° основС этого шаблона ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² jenkins ΠΏΠΎΠ΄ свой php ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° β€œcopy exiting project” ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚Π°ΠΌ php-template. ПослС Ρ‡Π΅Π³ΠΎ Π·Π°ΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ созданного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ лишнСС ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ.

Π’ глобальной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ jenkins Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ инсталяций для ant ΠΈ mercurial (ΠΈΠ»ΠΈ git). Они ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны Π½Π° сСрвСрС ΠΈ Ρ‚ΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΡΡ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈ домашним дирСкториям. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ slaсk ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ приставка, Π±Π΅Π· slack.com) ΠΈ адрСс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ доступСн jenkins Π½Π° Π²Π½Π΅ΡˆΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ip/8080.

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ бСзопасности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°Π½ΠΎΡΡ‚ΡŒ, Π΄Π°Π»Π΅Π΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΠΈ Π½Π° Jenkins’ own user database ΠΈ Allow users to sign up, ΠΈ Π½ΠΈΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Anyone can do anything ΠΈΠ»ΠΈ Logged-in users can do anything. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ Ссли Π²Π΅Π± интСрфСйс доступСн Π½Π° Π²Π½Π΅ΡˆΠΊΡƒ, Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π² случаС Ссли ΠΎΠ½ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΉ ip ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π•Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² любом случаС, Ρ‚.ΠΊ. ΠΈΠΌΠ΅Π½Π½ΠΎ api Ρ‚ΠΎΠΊΠ΅Π½ этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ bitbucket для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΈΠ»Π΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Ρ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ People ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Show api token. МоТно ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ. Π’ ΠΌΠΎΠ΅ΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅
user – abrakadabrausertoken

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Jenkins

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Jenkins, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создан ΠΊΠ°ΠΊ копия ΠΎΡ‚ шаблона php-template, Π² настройках Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *