Jenkins proqramı. Jenkins Jenkins ilə işləyir

Jenkins proqramı. Jenkinsnachalo ilə Jenkins

İnkişaf mühitinin mütərəqqi hissəsi davamlı inteqrasiya metodologiyasını (CI) tətbiq edir və LAIV Taoping iOS şöbəsi, Jenkins platformasında qurulmağa serveri çevirərək ona qoşulmaq qərarına gəldi. O vaxtdan bəri tamamilə fərqli bir həyat başladı.

Sonda nə əldə etdik.

  1. Server montaj başlayır:
    1. master-filialında Push'a vəziyyətində Web çəngəlində;
    2. İstədiyiniz budağı göstərən və əlavə edən slack söhbətindəki əmrdə. parametrlər.
  2. Bölmə və Ui -Testləri həyata keçirir.
  3. Aşağıdakı ölçüləri alır:
    1. kod kodu testləri;
    2. kod xətlərinin sayı;
    3. təkrarlama kodu;
    4. kodun siklodik mürəkkəbliyi.
  4. Layihəni IPA-ya arxivləşdirin, sonra onu Məclis Serverinə göndərir və Sürüşməyə Məclisə bir keçid göndərir.

Başlamaq üçün aşağıdakı rezervasyonlarla tanış olun və tapşırıqlarınızla bələdçimizin müqayisə olunduğunu başa düşmək:

  1. server iOS-İnkişafının ehtiyacları altında açıldı;
  2. jenkins özü də daxil olmaqla ən çox köməkçi proqramların ev mətbuatında quraşdırılması () sürətli yeniləmələr və istifadə rahatlığı);
  3. montaj testinin bütün vəzifələri üçün XCodebuilder istifadə edin (UI -Testlərin başlaması mümkünsüzlüyü səbəbindən XcTool istifadə etməkdən imtina etdilər);
  4. bir depo olaraq gitlab istifadə edirik;
  5. məclislərin saxlanması üçün öz inkişaf serverinizdən istifadə edirik. Hər bir məclis üçün unikal bir URL yaradılır və daha sonra bağlantını açın mobil cihaz Brauzerdə və "Set" düyməsini basın - Müəssisə hesabı sayəsində hər kəs tətbiqi telefona quraşdıra bilər. Serverimizə fayl göndərməklə əlaqədar tədbirlərin spesifikliyi sayəsində məqalədəki bu mərhələ təsvir edilmir;
  6. bütün layihələrimiz CocoAPods Asılılığı İdarəetmə Sistemindən istifadə edir.

Liderlik olduqca çətin idi və onu iki hissəyə ayırmaq qərarına gəldik. Bu hissə Jenkinsin əsas qurğusuna və konfiqurasiyasına həsr edilmişdir.

Nə lazımdır:

  1. Quraşdırılmış OS X və XCode ilə Mac (bizim vəziyyətimizdə, MacBook Pro 2011 ilə OS X 10.11.4);
  2. bir neçə saat boş vaxt.

Bir Jenkins istifadəçisi yaratmaq və onu konfiqurasiya etmək

İstifadəçi həm konsol, həm də GUI istifadə edərək yaradıla bilər. İkinci versiyada çətin olacağı ehtimalı azdır, buna görə bunu daha yaxşı hesab edəcəyik ():

Bir qrupun 'tətbiqetmələri' dseditgroup -o yaratmaq -n. -U istifadəçi adı -P -r 'Tətbiqlər' tətbiqləri # Sudo DSCL Group üçün identifikator əldə edin. -Read / qruplar / tətbiqlər # İstifadəçilər üçün identifikatorların siyahısını əldə etmək (istifadəçi üçün unikal identifikator lazımdır) sudo dscl. -Müharibə / istifadəçilər uniquan bir istifadəçi yaratmaq (identifikator dəyərləri unikal olmalıdır) sudo dscl. -Kreative / istifadəçilər / jenkins sudo dscl. -Kreative / İstifadəçilər / Jenkins Primongroupid 777 sudo dscl. / İstifadəçilər / Jenkins UniquiceIDID 1777 sudo dscl. -Kreative / istifadəçilər / jenkins istifadəçiləri / bin / bash sudo ddcl. -Kreative / İstifadəçilər / Jenkins real adı "Jenkins" sudo dscl. -Create / İstifadəçilər / Jenkins NfshomeDirectory / İstifadəçilər / Jenkins sudo dscl. -Passwd / İstifadəçilər / Jenkins # Bir ev qovluğu və onun sudo mkdir / istifadəçiləri / jenkins sudo sudo -r jenkins / istifadəçilər / jenkins

İstifadəçimiz hazırdır və indi bunun üçün getməliyik. Sistemə GUI vasitəsilə daxil ola bilərik və ya konsoldan istifadə etmək üçün:

Sudo -u Jenkins -i

DİQQƏT: İstifadəçi Jenkins altında bütün işlər görürük.

Lazımi proqramları quraşdırmaq

Jenkins quraşdırmaq üçün homebrew paket idarəetmə sistemindən istifadə edin. Gələcəkdə quraşdırma prosesini asanlaşdıracaq və Metrik kodunu əldə etmək üçün istifadə edəcəyimiz əlavə paketləri yeniləyəcəkdir.

/ Usr / usr / bin / ruby-yaqut "$ (curl -fssl https://raw.githubusercontent.com/homebrew/install/master/install)"

2. Jenkins quraşdırmaq:

Brew Jenkins quraşdırın.

CocoAPods Quraşdırma Münasibətlərin İdarəetmə Sisteminin quraşdırılması:

Sudo gem quraşdırma -n / usr / yerli / bin cocoapods

Sistemimizin sistemin başlanğıcında avtomatik başlaması üçün, Launchd üçün müvafiq tapşırığın başlanmasını konfiqurasiya etməliyik. Bir seçimimiz var: onu nasazlı və ya Launchdaemon vasitəsilə edin. Çünki nasazlılardan istifadə edəcəyik * Jenkins ilə daha da işləməyi asanlaşdırır. Bunu başa düşmək üçün aşağıdakı cədvələ baxın:

Daemon.Agent
Başlamaq vaxtı.Sistem başlandı.İstifadəçi Giriş.
İstifadəçi növüQeyri-giriş.Daxil ol.
Ev qovluğu.Yox.Bəli
Giriş anahtarlığı.Yox.Bəli
iOS simulyatoruYox.Bəli
Təminedici profillərYox.Bəli

* Daemon vasitəsilə başladın əsas problemi, iOS simulyatorunu işlətmədən test etmək mümkün deyil (cin və agent arasındakı fərq haqqında daha çox oxuya bilərsiniz, oxuya bilərsiniz)

Bununla birlikdə, nasazlıların seçilməsi səbəbindən sistem başlayanda giriş istifadəçisinin olmaması problemini həll etməliyik. Bunu etmək üçün Autologu konfiqurasiya edin. Mənə yalnız bir yolla məlum deyiləm: GUI (Sistem Parametrləri -\u003e İstifadəçilər və Qruplar -\u003e Giriş Parametrləri -\u003e Avtomatik Giriş). Kimsə onu Shell vasitəsilə necə edəcəyini bilirsə - şərhlərdə abunə olun!

Launchagents vasitəsilə başladın, aşağıdakı addımları yerinə yetirəcəyik:

1. Demonu boşaltın (Jenkins quraşdırarkən avtomatik olaraq yaradıldı):

Sudo başlatma qurtarmaq / klivizye/Luunchdaemons/homebrew.mxcl.jenkins.Plist

2. Demonu sil:

Sudo rm /library/Luunchdaemons/homebrew.mxcl.jenkins.plist.

3. Agent yaradın:

CD / İstifadəçilər / Jenkins / Kitabxana / Launcagents Tap vurun.Mxcl.jenkins.Plist

4. Vim redaktorundan istifadə edərək agentin konfiqurasiya edin:

Vim homebrew.mxcl.jenkins.plist.

Plist faylının məzmununun nümunəsi:

Etiketləmək homebrew.mxcl.jenkins. Proqramlaşdırma / usr / bin / java -Dmail.smtp.startls.enable \u003d doğrudur -Banka /usr/local/Opt/jenkins/libexec/jenkins.war -HttplistenAddress \u003d 0.0.0.0. --Httpport \u003d 8080. Qaçmaq İstifadəçi adı. jenkins

0.0.0.0 dəyəri olan httplistenadddress sahəsinə və 8080 dəyəri olan Httpport sahəsinə diqqət yetirməyə dəyər - beləliklə, server göstərilən limanda hər hansı bir IP ünvanlarını "dinləyəcək".

Xatırladım: Faylın bağlanması və saxlanması üçün Vim redaktoru ilə tanış olun: WQ
Quraşdırıldıqdan sonra Jenkins 127.0.0.1 (LocalHost) standart olaraq mövcuddur.
Xarici şəbəkədən daxil olmaq üçün, marşrutlaşdırıcıda limanları oyada bilərsiniz: SSH girişi üçün Jenkins və 22 veb interfeysi üçün 8080.

Jenkins üçün pluginlər quraşdırmaq

Jenkins serverinə gedirik -\u003e Jenkins -\u003e Pluginlərin idarə olunması. "Mövcud" sekmesinde aşağıdakı plaginləri tapırıq və quraşdırırıq:

  1. Rol əsaslı avtorizasiya strategiyası - təhlükəsizlik. Hüquqların yayılması ilə istifadəçilər qrupları yaratmağa imkan verir;
  2. Gitlab plagin və gitlab çəngəl plagin plagin plaginləri ilə işləmək;
  3. XCode inteqrasiyası - XCode ilə inteqrasiya;
  4. Anahtarlar və Təminat Profilləri İdarəetmə - Profifinq Profile ilə işləməyi asanlaşdırır.

Əsas Tuning Jenkins

Jenkins veb interfeysi vasitəsilə "parametrlər", sonra "Sistem Konfiqurasiya" bölməsinə gedin. Diqqəti ödəməyə dəyər:

1. Parametrlər Xcode Builder. Xcode standart qovluğa quraşdırsanız, parametrləri dəyişdirmək lazım deyil. Əks təqdirdə, bu komponentlərin yolunu göstərməlisiniz. Nəticədə bir server işə saldığımızı nəzərə alsaq, Xcode Giriş.neychain üçün giriş əldə edəcəkdir. Ancaq irəliləmək istəsəniz, ekran görüntüsündə göstərildiyi kimi, bu hissədə keychain əlavə edə bilərsiniz (burada və sonra görüntünün görüntüsünə vurun).

İndi Lazımi sertifikatları GUI və ya Girişdəki Shell vasitəsilə yükləyə bilərik. Kode, məclisdə avtomatik olaraq onu sıxacaqdır.

2. SSH girişi konfiqurasiya etmək üçün bunu edin:

a. Biz deyilsə bir shh açar yaradırıq (nümunə üçün təlimat tapmaq mümkündür);

b. CVS bölməsindəki açarı əlavə edin;


c. Gitlab-a daxil olmaq üçün, Jenkins veb interfeysinin əsas səhifəsindəki etimadnaməsi bölməsinə müraciət edin. Burada istifadəçimiz üçün xüsusi bir açar əlavə etməlisiniz (bu vəziyyətdə Jenkins, Gitlabda qeydiyyatdan keçmiş bir istifadəçi). Aşağıdakı nümunədə göstərildiyi kimi onu birbaşa daxil edə bilərsiniz və ya ona yolu göstərə bilərsiniz:


d. Gitlabın öz parametrlərində, müvafiq açıq açarı göstərməlisiniz:


3. Təhlükəsizliyi konfiqurasiya etmək üçün dirək əsaslı avtorizasiya strategiyası pluginindən istifadə edin. Gəlin Jenkins Web interfeysi vasitəsilə parametrlərdə keçək və sonra idarəetmə və rollar bölməsində. Burada istifadəçilər və qruplar üçün təyin olunan müxtəlif rollar yarada və müəyyən əməliyyatlar üçün hüquqlarını müəyyənləşdirə biləcəyik. Hər şey hər şeyi öz istəyinizlə burada edir. Ancaq serverə xarici girişi konfiqurasiya etmisinizsə, qonağın bütün hüquqlarını "Qonaq" adlandırmaq tövsiyə edirəm.

Bir iş yaratmaq və Layihə Məclisini təyin etmək

1. Jenkins veb interfeysinin əsas səhifəsində "Maddə yaradın" seçin. Sonra, "Pulsuz konfiqurasiya ilə tapşırığı yaradın" maddəsini seçin və layihənin adını tətbiq edin;
2. İş Quraşdırma səhifəsində, edəcəyimiz ilk şey "Mənbə İdarəetmə" sekmesinə keçmək və Gitlab-dan layihənin yüklənməsini konfiqurasiya etməkdir. Burada layihəmizin depozitarisinin ünvanını daxil etməliyik, serverin Gitlab-a hansı səlahiyyət (etimadnaməsini) daxil olacağını və layihənin hansı filialına toplanmalıdır:


3. Sonra, "Məclisi" bölməsinə gedin. CocoAPods Asılılıqların İdarəetmə Sistemindən istifadə etsəniz və GIT-ə Pod faylları əlavə etsəniz, təqdimatın quraşdırılmasına başladığınız "Run Shell əmrinin" qurma addımını əlavə etməlisiniz:

#! / Bin / Bash-Bash -L export lang \u003d UTF-8 pod quraşdırın [$ ((tarix + "% s") - $ (stat -f% m podfile))) - 60]; Sonra pod quraşdırın fi

4. Məclis addımını əlavə edin: XCode. Kakoapodlardan asılılıqların idarəetmə sistemindən istifadə edirsinizsə, hədəf sahəsindəki dəyəri göstərməməlisiniz və qabaqcıl xcode qurma seçimləri bölməsində icra olunan sxem və fayl.xcworkspace adını göstərin. Minimum bir konfiqurasiya nümunəsi aşağıdakı ekran görüntülərində göstərilir:



Layihənizin parametrlərində, icra olunan sxemin paylaşıldığı kimi qeyd olunmalıdır (konteyner həm iş sahəsi, həm də layihə ola bilər):

Sertifikatlar və Profile Profile ilə işləmək

Anahtarlar və profillərin idarə edilməsi sayəsində, profil quraşdırılması ilə işləməyi əhəmiyyətli dərəcədə asanlaşdıra bilərsiniz.

Prokurorluq profili əlavə etmək:

  1. jenkins parametrlərinə gedin;
  2. siyahıda, anahtarlıq və proqnozlaşdırma profillərinin idarə edilməsi;
  3. "Fayl seçin" düyməsini vurun, Prokurorluq profilinizi tapın və yükləyin.

Zəruri bir profili təyin etmək üçün, zəruri hallarda, "Xüsusi Qurmaq" bölməsindəki iş parametrlərində mobil proqnozlaşdırma profilləri bayrağını quraşdırmalı və yüklənmiş profillərdən birini seçməlisiniz:


Sonra XCode parametrlərində ekran görüntüsündə olduğu kimi xüsusi XCodeBuild arqumentlərini quraşdırmalısınız:


Sertifikatı açar giriş düyməsini yükləmək üçün GUI-dən istifadə edə bilərsiniz (sadəcə sertifikatı vurun), amma bu xüsusiyyət həmişə deyil. Buna görə də, biraz daha mürəkkəb bir seçimə baxacağıq - SSH vasitəsilə əlavə olunur:

  1. mac-a istədiyiniz sertifikatı yükləyin və yerli düyməni basaraq quraşdırın;
  2. keychain girişinə gedin, istədiyiniz sertifikatı tapırıq və açarı format.p12;
  3. sertifikatı serverə köçürün:

CQBK sertifikatı.crt. [E-poçt qorunur]: / İstifadəçilər / Jenkins

sertifikat - Sertifikat adı;

jenkins - İstifadəçi adı;

server - Server ünvanı;

: / İstifadəçilər / Jenkins - Saxlanılan faylın yolu;

(İstədiyiniz portu formatda göstərməsi üçün parametrdən istifadə edə bilərsiniz: SCP -p 20 sertifikatı.crt [E-poçt qorunur]: / İstifadəçilər / Jenkins)

4. Açarı serverə köçürün:

SCP eskizkey.p12 [E-poçt qorunur]: / İstifadəçilər / Jenkins

5. SSH Serverə qoşulun:

Ssh. [E-poçt qorunur]

6. KeyBagging-ə giriş açın:

Təhlükəsizlik kilidini açma-keychain -P Şifrə / Xenkins/Libry/Library/LuKychains/Login.keyiain

7. Sertifikatı quraşdırın:

Təhlükəsizlik Əlavəsi Sertifikatları ./certificate.crt

8. Açarı kopyalayın:

Təhlükəsizlik idxal exalkey.p12 -k / tusers/cenkins/library/Library/Luksenains/login.keychain -P Şifrə -A

Qaçmadan əvvəl

İndi Jenkins veb interfeysinin və ya layihə səhifəsinin əsas səhifəsində quraşdırılmış indi düyməsinə basmağa hazırıq. Məclisin konsol çıxışı bölməsinə vurun və gedin. Burada qeydlərdə səhvlər də daxil olmaqla bir çox faydalı məlumat tapa bilərsiniz.
Hər şeyi düzgün etdinizsə, qeydin sonunda məclisin sonunda göstəriləcək: Bitir: Müvəffəqiyyət və Montaj adının yanında Jenkins ana səhifəsində mavi bir müvəffəqiyyət göstəricisini yandıracaq.

bütün zəruri proqramları və plugins quraşdırılması.

Başlamaq üçün, bizim üçün statistika toplayacaq proqramları quraşdırın:

# Definition Cover Kodu Brew GCOVR # Counter String Brew CLOC CLOC Kodu String Kodu hissələri, Alternativ Brew Install Testlər təkrarlanması Kodu Brew üçün Sloccount # axtarış Yükle PMD # Yaratma Test nəticələri (həmçinin OCLINT üçün məlumat yaradır) sudo GEM XCPRETTY # Static kodu Install Təhlil dəmlənən tıxac və düsturlar dəm oclint

Sürüşmə inteqrasiyası

SLACK komanda chat akt statusu reports almaq üçün, biz Slack ayarları Jenkins ilə uyğun inteqrasiya əlavə etmək lazımdır. Bunu etmək olar.
inteqrasiya yaratmaq sonra, unikal mö'cüzə Jenkins ayarları əlavə edilməli olan, yaradılan (və ya ayrı-ayrı JOB bir ayarları) - ekran nümunə kimi:


Sonra, Slack inşa-in əmri mexanizmi istifadə edərək, iclaslar başlanması konfiqurasiya edəcək. Başlamaq üçün inteqrasiya əlavə etməliyik. Bunu etmək üçün, xüsusi inteqrasiya bölməsində slash əmrlərinin alt hissəsinə gedəcəyik və Konfiqurasiya əlavə et düyməsini basın. Bu əməliyyat həyata keçirilə bilər.
Siz komanda adını daxil etmək lazımdır konfiqurasiya zaman, POST data metodu seçin və tələb gedəcək olan URL-ünvanı daxil.


daha müraciətinə URL formalaşması bir nümunəsinə nəzər salaq. oxşar misal görünüş üçün Bizim URL:

Http: // server: 8080 / buildByToken / buildWithParameters iş \u003d JenkinsExecutor & token \u003d XXXXXXXXXXXXXXXXX?

Bunu komponentdə təhlil edəcəyik:

  1. server serverinizin xarici ünvanıdır. Lazım gələrsə, burada da düzgün portu göstərin (bizim vəziyyətimizdə 8080);
  2. buildBytoken Build Avtorizasiya Tank Root Plugin plugin tərəfindən təmin bir fürsətdir. Siz (bizim halda xxxxxxxxxxxxxxxxx ilə) ayələr ifadə linki İş run imkan verir;
  3. buildWithParameters - Bir montaj parameterized run lazımdır ki, göstərir;
  4. Jenkinsexecutor - biz yaratmaq və istifadə digər Jobs başlamaq job'a adı. Aşağıda müzakirə ediləcək;
  5. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - TOCKEN dəyəri.

Nümunə olaraq aşağıdakı mətn quruluşundan istifadə edəcəyik:

/ Nümunə test ustası qurmaq

  1. / Qurmaq - komandamızın adı;
  2. Misal - Ad Job'a;
  3. test, testlərin başlanması və metriklərlə hesabatların yaradılması ilə əlaqəli köməkçi bir bayraqdır;
  4. master - Məclis üçün filial.

Hesab olunan konfiqurasiya, istənilən şöbəni göstərən hər hansı bir layihənin məclisini işə salmağa imkan verəcək, vahid əmri istifadə ediləcək: / qurun.

Konfiqurasiya köməkçi iş - Jenkinsexecutor

Bu işin digər işləri işə salmaq üçün lazım olacaq. İstifadəçi mövcud olmayan bir layihəyə daxil olub və əmr məlumatı (özünəməxsus kömək) əlavə edilərsə səhvləri emal etmək də mümkün olacaq.
Serverə gedirik və pulsuz bir konfiqurasiya və Jenkinsexecutor ilə yeni bir vəzifə yaradırıq. Sonrakı, iş parametrlərində, toplaşmanın parametrləşdirildiyini və mətn parametrini qəbul etdiyini göstərən bayraq qurun. Slack əmrinə başlayanda, bütün məlumatlar (nümunə master testi) mətn dəyişənində bir xətt ilə ötürüləcəkdir.

İndi dəyəri mətn dəyişənindən çıxarmalıyıq. Bunu etmək üçün "Məclis" bölməsinə gedin və "Çalışan Shell Komandası" kolleksiyasını əlavə edin. Nümunə komanda:

# IFS \u003d "" "ilə ayrılan sıra elementlərinin bir sıra yaradın<<< "$text" #Согласно нашему примеру, первое значение - это название проекта JOB_NAME=${array} #Флаг, ответственный за тесты TEST=${array} #Название ветки проекта BRANCH=${array} #Если необходимо, можно также получить другие значения: USER_NAME=${user_name} CHANNEL_NAME=${channel_name}

Parametrlərlə məclisə başlamaq üçün, müəyyən bir işi yerinə yetirmək üçün sorğu göndərin. Bunu etmək üçün, əvvəlki Shell əmrinə növbəti sətri əlavə edin:

Curl -D testi \u003d $ (test) -d filial \u003d $ (filial)

Unutmayın ki, bütün başlayan məclislər parametrləşdirilməlidir!

Məclisin qurulması

1. İşin qurulduğu zaman diqqət yetirmək üçün ilk şey, montajın parametrləşdirilməsidir. Bunu etmək üçün müvafiq bayraq təyin edin, filial və test mətn parametrlərini əlavə edin və standart parametrləri təyin edin:

Bu filial dəyişən üçün əlavə bir dəyər əlavə etməyiniz lazım olduğunu qeyd etmək lazımdır. Fakt budur ki, budağı göstərmədən süstlükdən bir toplama işləsəniz, onda budaq dəyişənə boş bir dəyər olacaq və səhv olacaqdır. Bunu etmək üçün, SCM bayraqını "Məclis Çərşənbə" bölməsində bayraq keçirməzdən əvvəl Run Buildstep əlavə edəcəyik. Sonra bir addım "Shell əmri" və addım vurma mühit dəyişənləri əlavə edin. Bunu edirik:

4. Məclis mərhələsi, faylın yeniləndiyi təqdirdə poD-lər təyin edən bir qabıq əmrinin icrası ilə başlayır:

Əgər [$ ($ ($ + "% s") - $ (stat -f% m podfile))) - 60]; Sonra pod quraşdırın fi

Sonra, rahatlıq üçün, layihə üçün bəzi dəyişənlər qoyun və fayla yazın:

# Ad.ipa faylı_name \u003d "Misal" # Fayl Adı.xcworkspace Workpace_name \u003d "Misal" # Scheme_name ("Misal" Nömrə Sxemi # Adı # Adı Mənbə kodu ilə # ad. Folder_name_with_code_code_code kodunun sayını hesablamaq üçün istifadə ediləcək \u003d "Nümunə" # Echo Project_name_name_name_name-in digər mərhələlərində istifadə etmək üçün dəyişənləri yazın. Echo Workpace_name \u003d $ Workpace_name \u003e\u003e İnşaatlar SCHEME_NAME \u003d $ SCHEME_NAME \u003e\u003e Qurmaq .properties.

Test parametrindən asılı olaraq, test addımını və hesabatların nəslini işə salırsınız və ya atlayırsınız. Bunun necə görünə biləcəyinə bir nümunə:

Əgər ["$ test" \u003d\u003d "Test"]; Sonra # Hesabatlar varsa qatlayacağımız hesabat qovluğu yaradın [!! -D "hesabatlar"]; Sonra MKDIR "Hesabatlar" Testi və Təhlil üçün Hesabatlar "\\ -ComsteromerivedDatalocation \u003d" qurma_ccov "\\ gcc_generate_test_coverage_files \u003d bəli \\ gcc_instrument_program_frogram_arc \u003d bəli \\ Təmiz Test | XCPRTETTRETTRETRY -O hesabatları / JUIT.XML -OL -OM JSON-tərtib etmə-verilənlər bazası -O kompile_commands.json Database -V kodu - \\ -rc \u003d Long_line \u003d 200 \\-200 \\ -RC \u003d NCSS_METHOD \u003d 60 \\ -RC \u003d 100 \\ -RC \u003d Minimum_Cases_in_Switch \u003d 1 \\ \\ -Max-1 1000 \\ -Max-prioritet-2 1000 \\ -Max-prioritet-3 1000 \\ -Max-Priority-3 1000 Tutulan PMD analizi \u003d ** / Hesabatlar Qurmaq_ccov / $ (sxem_name) / qurma / intermediates / $ (sxem_name) .build / "\\" Debug-iPhonesimulator / $ (sxem_name) / "Normal / X86_64 /" \\ --XML \\ --Excult. "*" * "" Testlər. * "\\ --excule". * "\\ -" \\ --excule ". *" \\ --excule ". *" \\ "\\" - Hesabatlar \u003d əhatə.xml #publish cobertura əhatə dairəsi \u003d ** / ** / Hesabatlar / əhatə dairəsi.xml # sayma kod xətləri (iki seçim): Cloc $ (iş sahəsi) / $ (qovluq_name_with_code File -skip-unikallıq -XML-CHL-C \u003d $ (iş sahəsi) / sloccount analizi \u003d ** / ** / Cloc.xml Sloccount ---Aplikates - Folder_name_with_code) -V\u003e hesabatlar / sloccount.sc #publish sloccount.sc \u003d ** / hesabatlar / sloccount.sc # analizu təkrarlama kodu PMD CPD - - format net.sourceforge.pmd.cpd.xmlrenderer | İconv -f macroman -t UTF-8 | Sed "s / macromoman / utf-8 / g"\u003e Hesabatlar / dublikat-kod.xml #publish dublikat kodu \u003d ** / hesabatlar / dublikat-kod.xml başqa toxunma hesabatları / junit.xml # bu xətt uğursuz olmamaq üçün bu xətt lazımdır Hesabat nəsilinə görə yığdıqda Junit Test Nəticəsi Hesabatı Fi

  • CoberTura əhatə dairəsi analizinin nəticələri: ** / Hesabatlar / əhatə dairəsi.xml
  • Sloccount analizinin nəticələrini dərc edin \u003d istifadə olunan moduldan asılı olaraq:
    1. ** / Hesabatlar / Cloc.xml
    2. ** / Hesabatlar / Sloccount.sc
  • JUNIT TEST NƏTİCƏ MÜRACİƏTİ \u003d ** / Hesabatlar / JUNIT.XML ( Qeyd: Plug-in inkişaf etmiş parametrlərində boş test nəticələrinə bayramını qurmamaq lazımdır. Bu, testlər başlamadan başlamışsa, inşası başlamağa kömək edəcəkdir)
  • Bu mərhələdə nəticələnən uğurla nəticələnə bilərik. APA faylı (serverə, e-poçt və s.). SFTP serverinə fayl göndərmək və ssh plagin üzərində dərc etmək istəyirsinizsə, "Məcburi Çərşənbə" bölməsinə getmək, fayl göndərmək və ya SSH-dən sonra əmrləri yerinə yetirmək və plugin konfiqurasiya etmək üçün əmrləri yerinə yetirməlisiniz tələblərinizə uyğun olmaq.

    Əlavə etməli olduğumuz son addım, təxmin etdiyiniz bir bildirişdir, ləkə üçün bildirişlər göndərir. İnkişaf etmiş plug-in parametrlərində, cari iş üçün fərdi parametrləri göstərə bilərsiniz. Fərqli montaj mərhələlərində dəyişdirmək üçün bir mesaj (misal: $ mesajı) bir dəyişən (misal: $ mesajı) kimi bir dəyişən göstərə bilərsiniz və bununla da yavaş-yavaş daha çox məlumatlı mesaj göndərin.

    Bu giriş CI tam hesab edilə bilər. Ümid edirik ki, məqaləmiz sizin üçün faydalı olacaqdır.

    Jenkins proqram inkişafı üçün davamlı inteqrasiya xidmətləri göstərir. Bu, Apache Tomcat kimi servlet konteynerində işləyən bir server sistemidir. O, Accure, CVS, Subversion, Git, Mercurial, Perforce və RTC daxil olmaqla SCM alətlərini dəstəkləyir və APACHA qarışqa və Apache Maven, eləcə də ixtiyari qabıq skriptləri və Windows əmrləri əsasında layihələri həyata keçirə bilər. Jenkins'in ilk inkişaf etdiricisi Kohsuka Kawagutidir. MIT lisenziyası altında yayımlanan Jenkins pulsuz bir proqramdır.

    Məclisdə müxtəlif yollarla, o cümlədən müxtəlif yollarla başlamaq, o cümlədən versiyaya nəzarət sistemində, digər tikililərin tamamlandıqda qurulması və müəyyən bir URL montajını istəməklə, kontrikaya bənzər bir mexanizm vasitəsilə planlaşdırma yolu ilə başlatmaq olar.

    Versiya

    Jenkins

    Versiya buraxılış tarixi
    1,656 2016-04-03
    2,0 2016-04-20

    Jenkins 1.x Jenkins 2.x qarşı

    Jenkins (və bu günə qədər), SCM fidyasiya tetikleyicisi üçün kod yaratmaq kimi proqramın inkişaf prosesini avtomatlaşdırmağa imkan verən davamlı inteqrasiya sistemi (CI). Bununla birlikdə, davamlı çatdırılma üçün artan ehtiyac (CD), Cenkins'nin CI və CD-ni birləşdirmək üçün bir CI xalis sistemi üçün inkişaf etməsini tələb etdi. Bundan əlavə, Jenkins işlərinin sənayeləşməsinə ehtiyac artmaqdadır və Jenkins 1.x sərbəst / maven işlərinin klassik əsərləri müəyyən ehtiyaclar üçün çox məhdudlaşmışdır.

    Jenkins altında 1.XA plugin adlı iş axını-plugin adlı plugin, tərtibatçıların vəzifələri izah etmək üçün kod yazmasına icazə verdiyi ortaya çıxdı. Jenkins 2, kod olaraq boru kəməri üçün quraşdırılmış dəstək əlavə edərək daha da davam edir. Əsas üstünlüyü, qocalı skript sənədləri olan konveyerlərin muxtar xüsusi sərbəst sərbəst vəzifələrindən daha mürəkkəb ola bilər və versiyalarla izlənilə bilər. Jenkins 2, konveyerdə müəyyən edilmiş müxtəlif "mərhələləri" asanlıqla görüntüləməyə və məsələn, bütün konveyeri izləməyə imkan verən yeni bir interfeys əlavə edir:

    Jenkins 2-nin Jenkins-ə əlavə etməsi, Jenkins 2 baxışına baxın.

    Jenkins bir yerdə tam giriş

    1. Jenkins:

    Jenkins, Java-da yazılmış açıq mənbəli davamlı inteqrasiya vasitəsidir. Layihə Oracle ilə mübahisədən sonra Hudsondan ayrıldı.

    Bir sözlə, Jenkins Master Açıq Mənbə Automation Serverdir. Java ilə tikilmiş, demək olar ki, hər hansı bir layihə üçün tikinti, sınaq, yerləşdirmə və avtomatlaşdırmanı dəstəkləmək üçün yüzlərlə plagin təmin edir.

    Xüsusiyyətləri: Jenkins qutudan aşağıdakı əsas xüsusiyyətləri təklif edir və bir çoxları plugins vasitəsilə əlavə edilə bilər:

    Asan quraşdırma: yalnız Java -Jar Jenkins.War-u işə salın, servlet konteynerində genişləndirin. Əlavə quraşdırma, verilənlər bazası yoxdur. Quraşdırıcıya və ya öz paketinə üstünlük verirsiniz? Biz də var. Sadə konfiqurasiya: Jenkins, sürətli və daxili yardımda geniş çeklərlə dost veb interfeysindən tam konfiqurasiya edilə bilər. Zəngin bir plug-in ekosistemi: Jenkins, demək olar ki, hər hansı bir SCM və ya quraşdırılmış quraşdırılmış bir vasitə ilə birləşdirilmişdir. Pluginlərə baxın. Genişləndirmə: Jenkins-in əksər hissəsi genişləndirilə və dəyişdirilə bilər və yeni Jenkins plaginləri yaratmaq asandır. Bu, Jenkins'i ehtiyaclarınıza görə konfiqurasiya etməyə imkan verir. Paylanmış məclislər: Jenkins, müxtəlif əməliyyat sistemləri olan bir neçə kompüterə məclislər / test yüklərini paylaya bilər. OS X, Linux və Windows üçün proqram yaratmaq? Heç bir problem yoxdur.

    Quraşdırma:

    $ wget -q -q - https://jenkins-ci.org/deanian/jenkins-ci.org.orke | Sudo apt-düyməsi əlavə et Yeniləmə $ SUDO APT-Get, daha çox əlaqə qurmaq üçün Jenkins quraşdırın:

    Kataloq Jenkins_Home. Jenkins, arxivlərin montajı və saxlanması üçün bir disk sahəsi lazımdır. Bu yeri Jenkins konfiqurasiya ekranında yoxlaya bilərsiniz. Varsayılan olaraq, bu parametr ~ / .jenkins-ə qoyulur, ancaq aşağıdakı yollardan birində onu dəyişdirə bilərsiniz: servlet konteynerinə başlamazdan əvvəl Jenkins_Home mühitini yeni bir ev qovluğuna təyin edin. Sistemin "Jenkins_home" sistemini servlet konteynerinə qoyun. JNDI "Jenkins_Home" mühitini yeni bir qovluğa təyin edin. Bunu bir konteyner üçün necə etmək barədə daha çox məlumat üçün xüsusi qablar qurun. Bir müddət Jenkins istifadə etdikdən sonra bu yeri dəyişə bilərsiniz. Bunu etmək üçün Jenkins'i dayandırın, məzmunu köhnə Jenkins_Home-dən yeni evə aparın, yeni Jenkins_Home quraşdırın və Jenkins'i yenidən başladın. Jenkins_Home, buna bənzəyən olduqca açıq bir kataloq quruluşu var:

    Jenkins_home.

    CONFIG.XML (Jenkins Kök konfiqurasiyası) + - * .xml (digər sayt geniş konfiqurasiya sənədləri) + - Bu qovluğundakı fayllar sizin http: // server / usercentent /) + - barmaq izi (barmaq izi qeydləri) altında veriləcəkdir ) + - Pluginlər (mağazalar plaginləri) + - İş sahəsi (Versiya İdarəetmə sistemi üçün İşçi Kataloqu) + - İş + - (hər bir iş üçün subment) + - Config.xml Son uğurlu qurma) + - qurur + - (hər qurma üçün) + - qurmaq.xml (nəticə xülasəsi) + - Giriş (Giriş faylı) + - Changelog.xml (Dəyişdirmə Giriş)

    Jenkins işlərini qurur:

    Jenkins-də qurmaq üçün yeni bir vəzifə yaratmaq çox sadədir: Jenkins alətlər panelindəki yeni iş menyusunu vurun. Jenkins yeni bir vəzifə yaratmağa qərar verdiyiniz zaman sizə təqdim olunan bir neçə fərqli növ qurma tapşırıqlarını dəstəkləyir

    Freestyle proqram layihəsi

    Sərbəst quruluş üzərində işləmək, maksimum rahatlıq təmin edən ümumi məqsədin vəzifələridir.

    Layihə Maven "Layihəsi Maven2 / 3 "Maven layihələrinə xüsusi uyğunlaşdırılmış bir montaj işidir. Jenkins Maven Pom fayllarını və layihə quruluşlarını başa düşür və layihənizi konfiqurasiya etmək üçün tələb olunan işləri azaltmaq üçün POM faylından alınan məlumatlardan istifadə edə bilər.

    İş axını.

    Birdən çox tabe cihazları əhatə edə bilən uzun hərəkətlər təşkil edir. Boru kəmərlərinin inşası və / və ya sərbəst üslub növünə uyğun olmayan mürəkkəb tədbirlərin təşkili üçün uyğundur.

    Xarici tapşırığın monitorinqi "Xarici iş monitorinqi" tapşırığı, Cron tapşırıqları kimi interaktiv prosesləri izləməyə imkan verir.

    "Multi-konfiqurasiya layihəsi" multigontiqasiya tapşırığı ("Matrix Layihəsi" adlanır) bir çox fərqli konfiqurasiyada eyni məclis tapşırığına başlamağa imkan verir. Bu güclü xüsusiyyət bir çox fərqli mühitdə, fərqli verilənlər bazası və ya fərqli montaj maşınları olan bir tətbiqin tətbiqi üçün faydalı ola bilər.

    1. Bir proqram layihəsi qurmaq (Pulsuz Style)

    Jenkins, davamlı / rəsmi / gecə montajı kimi tipik bir montaj server əməliyyatını aparmaq üçün istifadə edilə bilər, testə başlayın və ya bəzi təkrar toplama tapşırıqlarını yerinə yetirməyə başlayın. Buna Jenkins-də "sərbəst tərzsiz bir proqram layihəsi" adlanır. Layihəni təyin etmək. Jenkins Top səhifəsinə gedin, "Yeni tapşırıq" seçin, sonra "Pulsuz bir stil layihəsi qurun" seçin. Bu vəzifə növü aşağıdakı maddələrdən ibarətdir: mənbə kodunun yerləşdiyi CV-lər və ya subversiya kimi isteğe bağlı SCM. Əlavə nəzarət Jenkins qurarkən tetikler. Əsl işin əsni işləmə və / və ya Cavadoc və / və ya Cavadoc və test nəticələrinin arxivləşdirilməsi kimi montajdan məlumat toplamaq üçün əlavə addımlar atan bir montaj (qarışqa, maven, əmr faylı və s.) Olan bir montaj skripti keçirir. E-poçt göndərmək, ani mesajlar, izləyici yeniləmə və s. Montaj nəticəsi olan digər insanları / sistemləri barədə məlumat vermək üçün əlavə addımlar

    Mənbə ilə əlaqəli olmayan layihələr yaradır. Bəzən yalnız SVN / CVS depolarına nümayiş məqsədləri və ya əlçatmaz giriş üçün bir layihə yaratmaq lazımdır. Layihəni "yox" bölməsində "yox" bölməsində "yox" olaraq qurmağı seçərək ehtiyacınız var:

    1. Ən azı bir dəfə bir layihə qurun (müvəffəq olmayacaq), ancaq Jenkins Jenkins / WorkStace / Layihə adının quruluşunu yaradacaq /
    2. Layihə sənədlərini Jenkins / WorkStace / Layihə adı /
    3. Yenidən qurun və uyğun bir şəkildə tənzimləyin.

    Jenkins mühit dəyişənlərini təyin edir

    Jenkins tapşırıldığı zaman, Shell skriptinizdə, toplu emal əmrləri, qarışqa və ya Maven Pom skriptlərinizdə istifadə edə biləcəyiniz bir mühit dəyişənləri təyin edir. Ətraf mühiti tıklayarak tıklayarak dəyişənlərin siyahısına baxın.

    Avtomatik məclislərin qurulması

    Jenkinsdəki məclis vaxtaşırı (konfiqurasiya zamanı göstərilən cədvəldə) və ya layihədəki mənbənin dəyişdikdə və ya URL-ı tələb etməklə avtomatik olaraq başlana bilər:

    Bu, Jenkins'i müxtəlif parametrlərə qoşmağa imkan verir. Daha çox məlumat üçün (xüsusən təhlükəsizlik işdən istifadə edərək), uzaqdan giriş API-ə baxın.

    Mənbə dəyişikliklərinin köməyi ilə yaradır

    Jenkins'i dəyişdirmək üçün versiya nəzarət sisteminizi sorğu etmək üçün məcbur edə bilərsiniz. Jenkins'in Unix / Linux-da Crontab şəklində eyni sintaksis istifadə edərək, versiyalara nəzarət sisteminizi nə qədər tez-tez göstərməyinizi göstərə bilərsiniz. Bununla birlikdə, seçki dövrünüzdə versiya nəzarət sisteminizi araşdırmaq üçün tələb olunandan daha qısa olarsa, hər dəyişiklik üçün bir neçə qurma əldə edə bilərsiniz. Seçki nəzarət sisteminizin sorğusuna sərf olunan vaxtdan daha uzun müddətə konfiqurasiya etməlisiniz və ya düzəldilmədən sonra bir tətiyi istifadə etməlisiniz. Sisteminizi araşdırmaq üçün nə qədər vaxtın lazım olduğunu tapmaq üçün hər bir məclis üçün sorğu girişinə baxa bilərsiniz.

    Alternativ olaraq, sabit bir interval ilə bir araşdırma əvəzinə URL tetikleyicisindən istifadə edə bilərsiniz (yuxarıda təsvir edilmişdir), ancaq URL sonunda qurmaq / qurmaq / qurmaq / seçmək. Bu, Jenkins'in Dəyişmək üçün SCM-i sınamağa və dərhal yaradılış üçün deyil. Bu, vəzifəsi ilə əlaqəli olmayan modullara və ya filiallara təsir göstərmələri üçün heç bir əhəmiyyətli dəyişiklik olmadan Jenkins Assambleyasının başlanmasının qarşısını alır. İstifadə edərkən / sorğu zamanı tapşırıq bir sorğu üçün konfiqurasiya edilməlidir, lakin cədvəl boş ola bilər.

    Yaradır e-poçt (Sendmail)

    varsa hesab Sisteminizi kökləyin və sendmail istifadə edirsiniz, / s. / Əyləncələri konfiqurasiya etmək və aşağıdakı girişləri daha asan tapdım: Jenkins-foo: "| / Bin / wget -o / dev / null

    və sonra bu dəyişikliyi göndərmək üçün "Newaliasses" əmrini işə salın. Kimsə Jenkins-Foo @ Yousystem-ə bir e-poçt göndərəndə yeni bir məclisə səbəb olacaqdır. Ətraflı məlumat üçün, sendmail parametrində baxın. Silahdan istifadə edərək e-mail (qmail) tərəfindən yaradır /Valar / -qmail/alias/.qmail-jenkins yaza bilərsiniz: | / Bin / wget -o / dev / null http: // yoost / jenkins / iş / proyekt adı / qurmaq

    2. Bir Maven Layihəsi yaratmaq

    Jenkins Maven 2/3-ə həsr olunmuş tapşırıq növünü təmin edir. Bu növ iş Jenkins Maven 2/3 ilə birləşdirir və daha ümumi bir pulsuz tərzli bir proqram layihəsi ilə müqayisədə aşağıdakı üstünlükləri təmin edir.

    Jenkins, işini yerinə yetirmək üçün lazım olan məlumatların çoxunu əldə etmək üçün Maven pomlarını sökür. Nəticədə konfiqurasiya ölçüsü kəskin azalır.

    Jenkins Mavenin edamını dinləyir və özündə olanda nə edəcəyini tapır. Məsələn, Maven test mərhələsinə başlayanda Avtomatik Hesabatı avtomatik olaraq qeyd edir. Və ya, Javadoc-un məqsədini işlədirsinizsə, Jenkins avtomatik olaraq Cavadoku işə salacaq.

    Jenkins avtomatik olaraq, bir-biri ilə bir-biri ilə andokshotun asılılıqlarını elan edən layihələr arasında bir layihə asılılığı yaradır. Aşağıya baxın. Beləliklə, əsasən, sadəcə SCM məlumatlarını və hansı hədəfləri işə salmaq lazımdır və Jenkins hər şeyi tapacaqsınız.

    Bu tip layihə avtomatik olaraq aşağıdakı funksiyaları təmin edə bilər:

    Məclis tərəfindən yaradılan arxiv əsərləri

    Aşağı axından asılı olan layihələr üçün vəzifələri çalışdırın

    Maven depolarında əsərlərinizi genişləndirin

    Nəticələr sınanmış bir modul

    İsteğe görə, məclislərinizi sürətləndirərək, yalnız dəyişdirilmiş modulları yenidən qurun

    Modul asılılıqlarının avtomatik qurulması zənciri

    Jenkins, Layihənizin asılılıqlarını POM-dan oxuyur və onlar da Jenkins-də inşa edildikdə, tetikleyicilər bu asılılıqlardan birində yeni bir məclisin layihənizin yeni məclisini avtomatik olaraq işə salacaqdır. Jenkins, POM-da hər cür asılılıqları başa düşür. Məhz, valideyn pom

    Layihənizin bölməsi Layihənizin bölməsi Layihənizin bölməsi Layihənizin bölməsi

    Bu proses versiyaları nəzərə alır, buna görə layihənizin bir neçə versiyasına / filialına sahib ola bilərsiniz və asılılıqları düzgün müəyyənləşdirə bilərsiniz. Qeyd, Asılılıq versiyasının aralığı dəstəklənmirsə, bu səbəbdən [https://issues.jenkins-ci.growse/jenkins-2787] baxın.

    Bu xüsusiyyət tələbdə əlil ola bilər - hər dəfə anketdən asılılıq olan konfiqurasiya parametrlərinin montajı

    Quraşdırma:

    1. Jenkins \u003e\u003e Konfiqurasiya Sistemini daxil edin

    1. maven Tab, "Mavenin quraşdırılmasına vurun ......

    Jenkins'i avtomatik olaraq Mavenin müəyyən bir versiyasını təyin etmək və ya yerli Maven qəbulu yolunu təyin etmək üçün ya da məcbur edə bilərsiniz (MABRING Layihələriniz üçün Mavenin bir çox versiyasını, nə qədər istədiyinizi və Mavenin fərqli versiyalarından istifadə edə bilərsiniz Fərqli layihələr. Quraşdırmanı avtomatik yoxlama qutusunu yoxlayırsınızsa, Jenkins sizin üçün Mavenin tələb olunan versiyasını yükləyəcək və quraşdıracaq və Jenkins ev qovluğunda alət kataloquna quraşdıracaqdır.

    Onu necə istifadə etmək olar

    Əvvəlcə Mavenin qurulmasını konfiqurasiya etməlisiniz (bu addım dev @ bulud istifadə edirsinizsə atıla bilər). Bu, Sistem Konfiqurasiya Ekranının tıklayarak (Jenkins-\u003e Konfiqurasiya Sistemini idarə et). "Maven quraşdırın" bölməsində: 1) "Əlavə et" düyməsini basın, 2) "Maven 3.0.3" adını göstərin və sonra 3) Açılan siyahıdan bir versiya seçin.

    İndi Jenkins avtomatik olaraq bu versiyanı istənilən vaxt (məsələn, hər hansı bir yeni maşında), Apache-dən yükləyərək onu açacaqdır.

    Yeni bir iş maveni yaradın:

    1. "Yeni tapşırıq / yeni element" düyməsini basaraq
    2. Ona bir ad verin
    3. "Bir Maven 2/3 Layihəsi qurun" seçin
    4. İşinizi qeyd edin

    İndi işinizi düzəltməlisiniz.

      Istifadə etmək istədiyiniz SCM seçin (məsələn, git istifadə edərək)

      zəng etmək üçün Maven hədəfini seçin

      depozitar URL və etimadnaməsini əlavə edin.

      Şəxsi şəxsi mesajı yoxlayın Maven:

    Ayrıca eyni üçün xüsusi yolu təyin edə bilərsiniz.

    5. Tikinti layihəsi

    İndi toplaşmanı tıklayarak layihənizi yaradın və Cenkins'nin Mavenin necə qurulduğunu, layihənizi yoxlayın və Maven istifadə edərək qurun və onu qurun.

    Skript konsolu:

    Problemlərin aradan qaldırılması, diaqnostika və ya toplu vəzifələrin toplanması üçün faydalıdır. Jenkins Jenkins-in bütün daxili komponentlərinə giriş imkanı verən skriptlər konsolunu təmin edir. Bu skriptlər Groovy-də yazılmışdır və bu səhifədə bəzi nümunələr tapacaqsınız.

    Bir kompüterdən digərinə jenkins hərəkət etmək

    Bu, Ubuntu 12.04 (Jenkins Ver. 1.628) Ubuntu 16.04 (Jenkins, Version 1.651.2) -ə köçməyə kömək etdi. Əvvəlcə jenkinsləri depolardan qurtardım.

      Köhnə serverdən yeni birinə Jenkins_Home (məsələn, / var / jenkins) kopyalayın. Yeni bir serverdə bir konsol ilə:

      rsync -av. [E-poçt qorunur]: / Var / lib / Jenkins / / VAR / lib / jenkins /

    Bəlkə də ehtiyacınız olmayacaq, amma mən də etməliydim

    • Jenkins idarə edin və diskdən konfiqurasiyanı yenidən yükləyin.
    • Bütün idarə olunan cihazları yenidən ayırın və qoşun.
    • Konfiqurasiya Sistemi\u003e Jenkins Yer Jenkins URL-nin yeni Jenkins serverinə düzgün təyin olunduğundan əmin olun.

    Nginx proxy serverini təyin etmək

    Əslində, Jenkins Port 8080 portunda işləyir. Jenkins-ə daxil olmaq üçün 8080 portu 8080-dən etibarən bir proxy server quraşdıra bilərik:

    Http: // .com.

    standart yerinə

    Http: // .com: 8080.

    Nginx quraşdırılmasından başlayın.

    sudo aptitude -i quraşdırmaq nginx

    Nginx üçün standart parametrləri silmək

    cD / ETC / NGINX / Saytlar

    sudo rm default ../sites-enabledsabled/default

    Yeni bir konfiqurasiya faylı yaradın

    sudo touch jenkins

    Yeni yaradılan Jenkins faylında aşağıdakı kodu kopyalayın.

    Upstream App_Server (Server 127.0.0.1:8080808080.0;) Server (qulaq asın [:::].) Yer / (proxy_set_Header X-göndərilmiş-$ proxy_add_fored_forwarded_forwarded_for. $ Http_host proxy_reratect off; əgər (! -F $ tələb_filename) (proxy_pass http: // app_server; fasilə;)))

    Mövcud saytlar və saytlar arasında simvolik bir əlaqə yaradın:

    sudo ln -s / ec / nginx / saytlar - mövcud / saytlar / və s. / Nginx / saytlar effektiv /

    Nginx Proxy Server Xidmətini yenidən başladın

    sudo service nginx yenidən başladın

    İndi Jenkins 80 portdan əldə ediləcəkdir.

    Bu məqalə davamlı inteqrasiyanın əsas fikirlərini təqdim edir və eyni zamanda Layihə üzrə Jenkins-in sürətli yerləşdirilməsinə də nümunə göstərir.

    Şərtlər və təriflər

    Əsas hissə ilə davam etmədən əvvəl istifadə olunan terminləri müəyyənləşdirmək lazımdır.

    Davamlı inteqrasiya (CI, Davamlı İnteqrasiya) - İşin birləşməsi, bu da iş birləşməsi, bu da gündə bir neçə dəfə inkişafın ümumi əsas əsas filialına nüsxə malikdir və tez-tez avtomatlaşdırılmış layihə məclislərini tez bir zamanda müəyyənləşdirmək və inteqrasiya problemlərinin həllini həll etmək üçün tez-tez avtomatlaşdırılmış layihə məclislərini yerinə yetirir. [wiki]

    Jenkins. - Java-da yazılmış açıq mənbə ilə davamlı inteqrasiya üçün bir layihə. [jenkins.io]

    Avtomatik sınaq - Bu, əsas funksiyalar və test addımlarının başlanğıc, başlatma, icrası, təhlili və verilməsi kimi test addımları, nəticələrini avtomatik sınaq vasitələrindən istifadə edərək avtomatik olaraq yerinə yetirdiyi bir proqram yoxlama prosesidir. [Etiraz etmək]

    Bir az Ci haqqında.

    Hal-hazırda davamlı inteqrasiya, çevik metodologiyada istifadə olunan təcrübələrdən biridir. Belə metodologiyalarda, vahid testi, refaktorinq, kodlaşdırma standartı kimi digər təcrübələrlə uğurla birləşdirilir. Ancaq bunlar da, davamlı inteqrasiyadan yararlana bilərsiniz. Davamlı inteqrasiya tərifindən, onun ən vacib fikri aşağıdakılardır - erkən mərhələdə səhv tapmaq, iş üçün daha asan və daha ucuzdur. Buna görə, layihəyə böyük dəyişikliklər edilərsə, test etmək lazımdır (vahid testləri, avtomatlaşdırılmış testlər).

    Qeydiyyat rejimlərinin bir neçə ola biləcəyini qeyd etmək lazımdır:

    • testlər hər bir törəmədən sonra başlayır - bu, bölmə testləri və sona çatmaq üçün mükəmməl seçimdir, niyə aşağıda izah etmək;
    • testlər gündə bir dəfə (ən çox gecə) başlamışdır. Bu seçim vahid testləri üçün uyğun deyil, çünki uzun müddət ərizə də yararsız qala bilər, lakin avtomatlaşdırılmış funksional son testlər üçün kifayət qədər yaxşı bir seçim, xüsusən də testlər uzun müddət çəkəndə kifayət qədər yaxşı bir seçim;
    • sərbəst buraxılmadan əvvəl testlər - istifadə üçün ən pis variantlardan biridir, eyni zamanda məhdud resurs şəraitində də istifadə edilə bilər və gündə bir və ya bir neçə dəfə inkişaf etdirilir.

    CI üçün alətlər çoxdur:

    • yerli olaraq vurğulaya bilərsiniz - Gitlab Ci, Teamcity, Bamboo, Jenkins, Hudson, Circle CI;
    • bulud - Bitbucket boru kəmərləri, Heroku Ci, TRAVIS, TRAVIS, Buddy Ci, AWS Codebuild.

    Jenkins.

    Niyə yalnız Jenkins istifadə etməyə dəyər:

    • pulsuz və etibarlı;
    • İş üçün çox sayda təlimat, bu, onunla işləməyi öyrənmək deməkdir;
    • 5 dəqiqə başqa bir maşın üzərində yerləşdirmək və yerləşdirmək asandır;
    • xML sənədlərinin nəzarət və hərəkətinə nəzarət edə bilərsiniz.

    Mənfi cəhətdən qeyd edərdim:

    • lTS deyilsə, yeni versiyaların tez-tez çıxışı;
    • müxtəlif xidmətlər ilə inteqrasiya bir çox fərqli plug-inlərə bağlanır;
    • bəzən qeyri-standart bir yanaşma tələb edən bir vəzifə ola bilər.

    Mən yadda qalan bir nümunə verəcəyəm. Java-ın müxtəlif versiyalarında işləyən və layihənin bu versiya ilə işləmədiyi bir neçə versiyanı qorumaq lazımdır, testlər sabit şəkildə düşməyə başladı. Bunu etmək üçün, bir plugin - ətraf mühit injektoru əlavə etməliydim, məhsulun versiyasından asılı olaraq məclisdə əlavə bir addım əlavə edin, Java'nın müəyyən bir versiyasından istifadə etmək üçün iş mühitinin parametrlərini dəyişdirdi:

    Yuxarıdakı nümunədə təsvir olunan bir hal olduqda, komanda, qaçış işləyərkən Java versiyasını təyin etmək üçün kifayət idi.

    Ayrı-ayrılıqda, bu vəziyyətdə Jenkins yalnız avtomatlaşdırılmış testlərə başlamaq üçün istifadə edilmişdir, çünki Onlar kifayət qədər uzun idi və tələb olunurdu yüksək səviyyə Performans.

    İdeal dizayn prosesi kimi təqdim edilə bilər:

    • geliştirici kodu depoda göndərir;
    • davamlı inteqrasiya serverində dəyişikliklər əsas kodla birləşdirilir, birləşdirilmiş testlər aparılır;
    • Əvvəlki addımda əldə edilən əsərlər, tətbiqin avtotestlər tərəfindən sınandığı ayrı bir test mühitinə yüklənir;
    • Əlavə hər şey istehsalın əldə olunduğu üçün yoxlanılır;
    • İstehsal üzərində yerləşdirmək.


    Jenkins quraşdırmaq

    Quraşdırma və ətraflı, əlbəttə ki, inkişaf etdiricilərdən ən yaxşı təlimat haqqında bir çox şey yazılmışdır - Jenkins quraşdırmaq.

    Ehtiyat nüsxə

    Daxili plaginlərdən istifadə edə bilərsiniz, ancaq plugin-insların fərqli versiyalarının uyğunluğu problemləri ola bilər, buna görə də bu məqsədlə gündə / həftədə bir neçə dəfə başlayan ayrı bir məclisdə olan bash skriptlərindən istifadə etməyə gəlmişik . Məsələn, Jenkins-Backup.sh skript - cari iş konfiqurasiyası olaraq xidmət etdi: Görünüş, iş, ətraf mühit parametrləri, köçürülə bilən və daha da istifadə edilə bilən bir arxivdə saxlanılan plug-ins.

    Saxlanılan nüsxədən quraşdırma

    1. Java və arxivləşdirmə vasitəsini quraşdırmaq, bizim vəziyyətimizdə açılmayacaq.

    2. Əvvəlcədən qurtaran faylı açın (saxlanılan arxiv ilə qovluğa keçdikdən sonra):

    unzip jenkins.zip -d% path_to_jenkins%

    3. Jenkins qovluğuna gedin və Jenkins əmrini işə salın

    cD% path_to_jenkins && java -jar jenkins.war

    4. 8080 portu tərəfindən veb interfeysinə gedin.

    SSH tərəfindən Linux ilə işləsəniz, sonra bağlantı bağladıqdan sonra Jenkins dayandırılacaq. Belə davranışdan yayınmaq üçün belə bir ziyafətdən istifadə edə bilərsiniz: bir simvol əlavə etməklə əmr vermək və nəticədə komanda arxa planda yerinə yetiriləcək və nəzarət geri qaytarılacaqdır Əmr xəttiVə uzaq sistemdən işdən çıxartdığınız zaman işlədilən tapşırıqları bitirə bilərsiniz, sistemdən ayrıldıqdan sonra proseslərin də işləməyə davam etməsinə imkan verən NoHup proqramından istifadə edə bilərsiniz:

    nohup java -jar jenkins.war &

    Xidmətə Jenkins əlavə etmək

    Üçün linux sistemləri Əvvəlki bənddə təsvir olunan vəziyyətdən qaçınmaq üçün Jenkins'i bir xidmət olaraq quraşdıra bilərsiniz, hər dəfə Jenkins'i yenidən başlatdıqdan sonra avtomatik olaraq başladı. Bunu etmək üçün bir fayl yaratmalısınız. /etc/systemd/system/jenkins.service. Komanda:

    Sudo pişik /etc/systemd/system/jenkins.service sudo vi /etc/systemd/system/jenkins.service

    və Jenkins-ə məzmun əlavə edin .Service:

    Təsvir \u003d Jenkins daemon mühiti \u003d "Jenkins_Home \u003d% path_to_jenkins%" ExectArt \u003d / usr / Bin / java

    Yenidən başlama xidməti xidməti göstərin: sudo sistemctl daemon-yenidən yükləmə

    Jenkins xidmətinə başlamaq əmri: sudo sistemctl jenkins.service başlayın

    yenidən başlamaq sudo sistemctl jenkins.service yenidən başladın

    Qeyd etmək vacibdirJenkins.war faylı hər yerdə yerləşə bilər. Mövcud layihə parametrlərini "götürmək" üçün Jenkins bölməsinin Jenkins-i işlədiləcək bir əmrdən istifadə edə bilərsiniz:

    sudo montain -o bağlama /% path_to_jenkins% / ~ / .jenkins /

    Bu seçim yalnız sistemi yenidən başlamazdan əvvəl işləyəcək, buna görə qovluqda simlink yarada bilərsiniz ~ /:

    cD ~ / && sudo ln -s /% path_to_jenkins% / .jenkins

    Jenkins-də node üçün əlavə və hazırlıq

    Bu bölmə, Jenkins və Node'nin həyat dövrü məhdud olduğu, məsələn, 2 həftə və ya bir ayın məhdud olduğu təcrübəyə görə yazılmışdır.

    Jenkins-ə qul node əlavə etmək üçün əllərinizlə hər maşın əlavə edə bilərsiniz, ancaq buna görə də daim avtomobilə girib eyni əməliyyatları yerinə yetirməlisiniz və bu, hər şeyin mümkün qədər maksimum dərəcədə maksimum dərəcədə artacağına səbəb olur.
    Bunu etmək üçün ardıcıl olaraq yerinə yetiriləcək bir neçə iş yaratmaq kifayətdir:

    1. jenkins-ə qul node kimi əlavə etmək üçün sifariş verən maşınlar;
    2. İstifadə olunan Jenkins-də əvvəlcədən sifariş edilmiş maşınlar əlavə edin İstirahət api. və ya Jenkins Cli;
    3. tələb olunan mühitin yerləşdirilməsini həyata keçirin.

    Yuxarıda göstərilən bütün tədbirlər əlavə vasitələrdən istifadə etməklə həyata keçirilə bilər: anasible - Jenkins-in yerləşdirilməsi üçün lazımi parametrləri və dokerini yerləşdirmək və konfiqurasiya etmək və kölə qovşaqlarına qoymaq üçün.

    Rəy

    Əsas odur ki, "davamlı inteqrasiya" ifadəsi, yalnız gözəl yeni moda sözlər deyil, həm də hərəkətlərinizdə idi. Ən azı heç olmasa, CI prinsiplərinə uyğun olsanız, inkişafın həyat dövrüdəki problemlər daha kiçik olacaq və prosesin özü daha xoş olacaqdır. Maraqlı CI ilə sorğu layihə haqqında statistika -

    WordPress və Magento CMS-də bir çox layihənin olduğu bir serverimiz var. Bir php geliştiricisi olaraq, bu layihələr üçün Jenkins'i həyata keçirmək üçün bir vəzifə təyin edildi ki, Serverdəki mənbə kodunda dəyişikliklərin dərc edilməsi daha sürətli idi.

    Bizə davamlı inteqrasiya nədir?

    Veb geliştiricisinə olduğu kimi, mənim üçün proqram məhsullarının hazırlanması və saxlanması və saxlanması səmərəliliyinin yaxşılaşdırılması məsələsi həmişə müvafiq və maraqlı olmuşdur. Bir layihə toplamaq və serverdə yayımlanması prosesləri vəsait istifadə edərək asanlıqla avtomatlaşdırıla bilən linkdir Davamlı inteqrasiya (CI).

    Ci çoxları uzun və uğurla tətbiq olunur. İstifadə etmək İnkişaf metodları Bir layihəni serverə dərc etmək üçün vaxtınızı əhəmiyyətli dərəcədə azaltmağa imkan verir, bu işi bir neçə konsol əmrinin icrasına aparın. Bundan əlavə, CI istifadə edərkən, davamlı inteqrasiyanın versiya nəzarət sisteminin anbarları ilə ayrılmaz şəkildə əlaqələndirilməməsi səbəbindən layihənin əvvəlki versiyasına qayıtmaq mümkündür.

    Əməliyyat prinsipi CI olduqca sadədir. Mənim vəziyyətimdə 3 server iştirak etdi:

    • Layihənin işçi versiyası olan depo saxlanılan versiyanın idarəetmə sistemi serveri (SC), geliştiricinin dəyişikliklərini saxladığı yerlərdə saxlanılır.
    • CI nəzarət sistemlərindən birinin quraşdırılmış davamlı inteqrasiya serveri.
    • Layihənin iş versiyasının yerləşdirildiyi server.

    Depozitoriyanı versiyada idarəetmə sistemindəki depo dəyişdirdikdən dərhal sonra, SCM serveri CI serverində tapşırıq yerinə yetirməyə başlayır (bir qayda olaraq, bir veb çəngəldən istifadə edərək). Bu vəzifə PCP anbarından Layihə Server serverinə qədər mənbə kodunun məclisi və yerləşdirilməsi edir.

    Mənbə kodunu PCP anbarından layihə server serverinə qədər yerləşdirmək.

    Davamlı inteqrasiyanın istifadəsi təmin etdiyi üstünlüklər haqqında daha ətraflı məlumat verir, bu məqalədə oxuya bilərsiniz.

    Bu təlimat CI Jenkins sistemini tez bir zamanda konfiqurasiya etmək və onunla işləməyə başlamaq üçün kifayət qədər məlumat toplayır. Belə bir populyar CI sisteminin qarşılıqlı əlaqəsinin qurulması və təşkili ilə bağlı məlumatlar, eləcə də eyni dərəcədə tanınmış bir git versiya nəzarət sistemi. Git üçün bir veb xidmət olaraq, Github istifadə edəcəyik.

    Diqqət, vəzifə

    Jenkins'i bu şəkildə quraşdırmalı və konfiqurasiya etməlisiniz ki, Github depozitariyasında Push-e ilə Layihənin iş versiyası serverindəki dəyişdirilmiş sənədlər yeniləndi. Stokda:

    • Debian 8.2 X64 Server.
    • Yerli maşın sistemi: Linux Nanə 17.2.

    İlkin bir tələb hər iki maşındakı müəyyən bir gitdir. Bunu necə quraşdırmaq olar, oxuya bilərsiniz.

    Qərar

    1. Jenkins quraşdırmaq

    Quraşdırma CI üçün seçilmiş serverdə icra ediləcəkdir. Jenkins anbarını sistem depo siyahısına əlavə etmək üçün aşağıdakı əmrləri daxil edin:

    Sudo wget -q -q -O - http://pkg.jenkins-ci.org/deans/jenkins-ci.org.orke | APT-Açar Əlavəsi - Sudo Echo Deb http://pkg.jenkins-ci.org/deberiya ikili /\u003e /etc/apsources.list.d/jenkins.list

    APT-ni yeniləyin və Jenkins quraşdırın:

    Sudo apt-almaq yeniləmə sudo apt-almaq тор ap quraşdırma Jenkins yenidən başladın Jenkins:

    İndi CI Server Port 8080 "Dinlə" Jenkins. Bu, brauzerə keçərkən o deməkdir 8080 İstifadəçi nəzarət panel jenkinsinə düşəcək. Əlbəttə ki, belə bir giriş üsulu çox rahat deyil, buna görə Apache və ya Nginx-də virtual sahiblərdən istifadə edərək Ci serverində Jenkins-ə girişi konfiqurasiya edə bilərsiniz.


    Jenkins xoş gəlmisiniz.

    Növbəti vacib addım giriş hüquqlarını konfiqurasiya etməkdir. Xüsusilə server internet vasitəsilə mövcud olduqda bu çox vacibdir. Müvafiq parametrlər olmadan, hamı üçün açıq olacaq.

    2. İdarəçi əlavə etmək

    Jenkins'i idarə edin → qlobal təhlükəsizliyi konfiqurasiya edin (Qlobal təhlükəsizlik qəbulu).

    1. Lazımi məlumatları doldurun:

    • Təhlükəsizliyi aktivləşdirin - Doğru; // qorunmağa imkan verir;
    • Jenkins'ner istifadəçi məlumat bazası. - "Jenkins 'öz istifadəçi bazası"; // Jenkins verilənlər bazasına icazə vermək üçün istifadə edin;
    • Avtorizasiya - "Matrix əsaslı təhlükəsizlik"; // giriş hüquqlarının Matrix paylanması (layihələrin səviyyəsində hüquqların yayılması);
    • İstifadəçi / qrup əlavə etmək üçün - "Admin". // İstifadəçi "admin" - Jenkins İdarəetmə panelinə daxil olmaq hüququnu təqdim edirik.

    Bir idarəçi əlavə etmək.

    2. Parametrləri qeyd edin.

    İndi Jenkins İdarəetmə panelinə girməyə çalışdığınız zaman istifadəçinin daxil olmasını tələb edəcəksiniz.

    3. Github üçün bir istifadəçi yaratmaq

    İndi Jenkins serverinə Github üçün etimadnamə yaratmalısınız.

    İdarəetmə paneli Jenkins gedir Jenkins → İdarə et istifadəçiləri → istifadəçi yarat. Administratoru qeydiyyatdan keçərkən eyni olan qeydiyyat formasını doldurun Qeydiyyatdan keçmək..

    Bir istifadəçi yaratdıqdan sonra ona lazımi hüquqlar vermək lazımdır. Bunu etmək üçün gedək Jenkins'i idarə edin → qlobal təhlükəsizliyi konfiqurasiya edin (Qlobal təhlükəsizlik qurulması).

    Bütün bu parametrlərdən lazımdır təhlükəsizlik matrisinin.

    Başlamaq üçün, bu matris üçün bir istifadəçi əlavə edin. "İstifadəçi / Qrup" sahəsində sahə, yaradılan istifadəçinin adını daxil edin və vurun Əlavə et.. İstifadəçi matrisdə görünəcək. Ona oxumaq və toplaşmaq hüququ versin. Bunun üçün podstollarda Oxuyun.Tikmək İstifadəçi adına "İş" sütunu, onay qutularını quraşdırın və vurun Yadda saxla..


    Github üçün bir istifadəçi yaratmaq.

    4. Github üçün bir plugin quraşdırmaq

    B-yə getmək. Jenkins-ləri idarə et → Pluginləri idarə et → Mövcud Tab. Quraşdırma üçün üç plugin seçin:

    • Github identifikasiya plugin;
    • Github plugin;
    • Github API plugin.

    Düyməni vurun "İndi yükləyin və yenidən başladıqdan sonra quraşdırın" Quraşdırmanı tamamlamağı gözləyin.

    5. Jenkins ilə işləmək üçün bir serverin konfiqurasiyası

    Layihənin istehsal servasiyasında (avtomatik səhnə ilə ediləcək), bir Jenkins istifadəçisini yaratmalısınız:

    Ssh-keygen.

    Və lazımi məlumatları daxil edin.

    Ayrıca, faylı əldə etmək üçün bir açıq açar əlavə etməlisiniz ... /jenkins/.sh/authorized_keys (fayl yoxdursa, yaradılmalıdır)

    Bundan əlavə, bu server üçün Github-da açıq ssh düyməsini yaratmaq istəyirsiniz. Bunu necə etmək olar, görə bilərsiniz.

    Bu mərhələ tamamlandı.

    SSH identifikasiyasında bir şey anlaşılmazdırsa, bu mövzuda çox faydalı oxumağı məsləhət görürəm.

    6. Serverə giriş qurmaq

    Jenkins, layihənin iş versiyası ilə serverdə icazə veriləcəyi üçün, idarəetmə panelində identifikasiya üçün lazımi məlumatları yaratmaq lazımdır. Bunu etmək üçün, İdarəetmə paneli Jenkins davam edir Etimadnaməsi → Qlobal etimadnaməsi → etimadnaməsini əlavə edin Və biz aşağıdakıları edirik:

    1. Kimi Xeyir. Şəxsi açarla "SSH istifadəçi adı" seçin;
    2. İstifadəçi adı. - İstifadəçi tərəfindən yaradılan istifadəçi adını daxil edin ("Jenkins");
    3. Şəxsi açar. - "Birbaşa daxil olun", mətn sahəsində Jenkins istifadəçisinin özəlin açarının bütün məzmununu kopyalayın. ("... / jenkins / .ssh / id_rsa");
    4. "OK" düyməsini basın.

    Serverə giriş qurmaq.

    İndi serverə qoşulma konfiqurasiya etməlisiniz. Bunu etmək üçün, Jenkins Bypass nəzarət panelində Jenkins'i idarə et → Nodları idarə et → Yeni node idarə edin. Aşağıdakı hərəkətləri hazırlayırıq:

    1. Məhsul serverinin adını (məsələn, "hədəf") adını daxil edirik, "lal qul" quraşdırın, "OK" düyməsini basın;
    2. Jenkins'in kök qovluğuna məhsuldar serverə giririk. Kök qovluğu kimi, Jenkins istifadəçi kataloqu ümumiyyətlə hədəf serverində ("... / jenkins") seçilir;
    3. "Etiketlər" daxil edirik; Məsələn - "Hədəf_server". Etiket, tapşırığın müəyyən bir serverə bağlanacağı bir etiketdir;
    4. Host - Hostun adını idarə edəcəyimizi daxil edirik;
    5. Etibarnamələr - Doğrulama üçün əvvəlcədən yaradılan məlumatları seçin;
    6. "Saxla" düyməsini basın.

    Bir müddət sonra serverə qoşulma uğurla qurulmalıdır. Hər şey uğurla getdi, içəridə Jenkins'i idarə edin → qovşaqları idarə et Aşağıdakı şəkil haqqında görməlisiniz:


    Serverə qoşulma konfiqurasiya edin.

    Bağlantı quraşdırılmadıqda, yaradılan bağlantıya ("Hədəf") vurun, sol naviqasiya menyusunda "Giriş" seçin və nə baş verdiyini görün.

    Ən çox görülən səhvlər:

    İlk qərar - Bağlantı parametrlərində Jenkins Ev qovluğundakı kök qovluğunu dəyişdirin.

    İkinci qərar - Konfiqurasiya parametrlərində göstərilən qovluğu yazmaq və oxumaq üçün Jenkins təmin edin.

    7. Qarmaq github qurmaq

    Github depo istifadə ediləcək, bir veb çəngəlini konfiqurasiya etməlisiniz ki, depo yeniləyərkən, çəngəl Jenkins yeniləməsinə bir sorğu göndərdi. Bunun üçün:

    • Github-e-də yaradılan depoya gedin.
    • "Parametrlər" → "WebHooks & Services".
    • "WebHook əlavə et".
    • "Yükləmə URL" ni (GitHub'un əlaqə quracağı) daxil edirik. Aşağıdakı formata sahib olmalıdır
      <протокол>: //<имя пользователя для github в jenkins>: <пароль пользователя github в jenkins>@<домен>/ Github-Webhook /
      (Məsələn - http: // github: [E-poçt qorunur]: 8080 / github-webhhook /).
    • "Məzmun növü" - "Tətbiq / JSON".
    • "Bu Webook hansı tədbirləri tetikleyirsiniz?" - "Yalnız təkan hadisəsi."
    • "Aktiv" - doğrudur.
    • "WebHook əlavə et" düyməsini basın.

    Veb çəngəl yaradıldı.

    8. Jenkins tapşırıqlarının yaradılması

    İndi depo yeniləyərkən edam ediləcək bir tapşırıq yaratmalısınız. Jenkins İdarəetmə panelində aşağıdakıları edirik:

    • "Yeni element" düyməsini basın.
    • "Element Adı" sahəsində tapşırığın adını daxil edirik.
    • "Freestyle Layihəsi" seçin və "OK" düyməsini basın.
    • "Bu layihənin harada işləyə biləcəyini məhdudlaşdırın" - Server əlavə edildikdə (məsələn, "hədəf_server") seçilmiş etiketin adını daxil edin.
    • "Mənbə kodu idarəetmə" - "GIT" seçin və depo url sahəsindəki depo ünvanını daxil edin (məsələn, " [E-poçt qorunur]: Testci / davamlı inteqrasiya.git »).
    • "Etimadnamələr" sahəsində əvvəllər yaradılan etimadnaməsini seçin.
    • Tetikleyicilər qurun - "bir dəyişiklik Github-a itələdikdə qurun".
    • "Qurmaq" - "Sürüşmə qabığı" \u200b\u200b(Shell skript, Github-da hər bir push-e-də aparılacaq): sudo rsync -a -cvs -cvs -dele -delete -mit-kirs. /<директория проекта> Sudo Chown -r Www-Data: Jenkins< директория проекта>

      Birinci sətir, Jenkins iş qovluğunun layihənin hədəf qovluğu ilə məhsuldar serverdə sinxronizasiya istehsal edir. İkinci sətir layihə fayl sahibini təyin etməkdir.

      - Nginx-də virtual aparıcıların qurulması məqaləsi;

    • digitalOcean.com, Apache-də virtual sahiblərin qurulması üçün bir məqalədir.

     

     

    Bu maraqlıdır: