DangerJS-i GoCD boru kəmərləri ilə necə birləşdirmək olar

İndiki şirkətimdə CI infrastrukturumuzu yaxın zamanda CircleCI-dən GoCD-yə köçürdük. Yeni CI platforması ilə bir neçə aydan sonra onu baharatlandıracaq qədər rahat hiss etdim. Planlaşdırdığım şeylərdən biri də DangerJS-i inteqrasiya etmək idi - yeni kod üzərində yapılandırılabilir avtomatik yoxlamalar edərək çəkmə istəyi yoxlamalarını sürətləndirmək üçün inanılmaz bir vasitədir. Bunun mənası nədir? Artıq "Oh, düşünürəm X ... Y ... Z ..." kimi PR şərhlər yazmağa vaxt qalmır.

Bu məqalədə məqsədim bu missiyanı yerinə yetirəcək növbəti şəxsə komandalarının kod keyfiyyətini və PR araşdırmasını yaxşılaşdırmaqdır.

Kontekst

Artıq Danger'ın qabiliyyətlərindən istifadə etdim (Ruby-də qurulmuş olsa da) və əvvəlcədən qurulmanın olduqca asan olacağını bilirdim ... yalnız CircleCI-dən istifadə etsəydik!

İlk inteqrasiya cəhdimdə "DangerJS-i GoCD ilə İnteqrasiya et" adlı google-a cəhd göstərdim. DangerJS sənədlərini oxuduqdan sonra istifadə edə biləcəyim GoCD ilə yerli inteqrasiya olmadığını gördüm.

Bu, təhlükə yoxlamalarını CI axınına daxil edə bilməməyim demək idi. Beləliklə, bir neçə seçimim var idi:

  1. Geliştiricilerin DangerJS əmrlərinin yerli əl axınlarını daxil etməsinə çalışmaq.
  2. Yalnız DangerJS-i işə salmaq üçün (CircleCI / CodeShip / FooBar) xüsusi bir boru kəməri yaradın.
  3. İmtina etmək.

Seçimlərimdən heç birini sevmədim və Danger və GoCD ayarlarında bir neçə saatdan sonra həqiqətən məyus oldum. Sonra DangerJS sənədlərində "Təhlükə və Yanlış Anlayışı bir CI-də istifadə et" bölməsinə rast gəldim. Bu belədir! Yerli kompüterimdə bir CI-də olmağı saxta edə bilsəm, bir GoCD kompüterindəki saxta CI ilə fərq nədir?

Bundan sonra, yalnız GoCD infrastrukturunda eyni yerli davranışı necə təqlid edəcəyimizi tapmaq lazım idi.

İlk addımlar

Ən çox DangerJS-i qurmaq və istifadə etmək üçün rəsmi sənədlərdən keçməlisiniz.

Əsasən:

  • Dangerfile.js sənədinizi yaradın. Budur bir neçə nümunə.
  • Təhlükənin istifadəsi üçün GitHub / BitBucket-də bir bot hesabı yaradın
  • Dəyişikliklərinizi nəzərdən keçirmək üçün dəyişdirilmiş sənədlərlə bir PR açın
  • DangerJS-i bir PR linkinə (yeni açdığınız) qarşı yerli olaraq çalıştırın.
  • Yerli kompüterinizdə bir CI mühitini saxtalaşdırmağa çalışın

Növbəti hissədə DangerJS-in GoCD ilə işləməsi vacib olduğu üçün bu son addım barədə daha ətraflı məlumat verəcəyəm.

GoCD mühitində saxta CI-nin konfiqurasiyası

Birincisi, yalnız çəkmə istəklərini hazırlamaq üçün ayrıca bir GoCD boru kəməriniz yoxdursa, bunu etməyinizi məsləhət görürəm. Bunu qurmaq üçün köməyə ehtiyacınız varsa, burada bir təlimat var.

İkincisi, PR boru kəmərinizi yaratdıqdan sonra yalnız təhlükə üçün yeni bir iş yaradın:

Təhlükədən istifadə edərək bir CI-ni saxtalaşdırmaq üçün bir sıra mühit dəyişənləri təyin etməlisiniz:

ixrac DANGER_FAKE_CI = "YEP" ixrac DANGER_TEST_REPO = "İstifadəçi adı / Yenidən adlandır"

GoCD-nin boru kəməri iş parametrlərində, Ətraf Dəyişənləri nişanına gedin və istifadəçi adı / yer dəyişdiricilərini öz parametrlərinizlə əvəz edərək bu iki mühit dəyişənini təyin edin.

İlk DangerJS konfiqurasiya addımları zamanı yaranan DANGER_GITHUB_API_TOKEN-in

Bu ilk konfiqurasiya dəstindən sonra, Danger-in GoCD-də testlərini aparmaq üçün yerli mühitdə bir CI-yə xəyanət edən eyni əmrləri işlədən bir shell skriptindən istifadə edə bilərsiniz. Gəlin bu fayla "danger-build.sh" adını verək.

# danger-build.sh
echo '- - TEHLİKƏ BAŞLAYIN JS CHECK -'
PR üzrə öhdəliklərə qarşı əks-sınaq: $ {GO_SCM_PIPELINE_PR_URL}
DANGER_TEST_PR = $ {GO_SCM_PIPELINE_PR_ID} npx mövzu təhlükəsi ci
echo "- - TEHLİKƏLİ JS TESTİ - -"

Xahiş edirik unutmayın ki, əvvəllər mövcud GoCD maşınında quraşdırılmış düyün npm / iplik lazımdır.

Bu iki GO_SCM dəyişəninə diqqət yetirdinizmi? Bir GoCD kompüterində təhlükə təhlilinizi etməyə imkan verən çəngəl bunlardır.

Xahiş edirəm PR_ID dəyişəninə xüsusi diqqət yetirin, çünki bu, Dangerin dəyişiklikləri oxuya və şərh edə biləcəyi və sonra çəkilmə təklifinə təkliflər yaza biləcəyi PR istinadını təmin edir.

Maraqlı olsanız, bu mühit dəyişənləri GoCD kompüterləri tərəfindən yaradıldı. Bunlar UNIX / usr / bin / printenv komutunu bir quruluşda çalıştırarak və nəticəni nəzərdən keçirərək qiymətləndirilə bilər.

Və bu qədər!

Kabuk skriptinizdə düzgün mühit dəyişənləri təyin etdikdən sonra DangerJS yoxlamaları mövcud test paketinizlə yanaşı GoCD-nin boru kəmərlərində də işləyəcəkdir.

Addımları tamamlamaq üçün:

1. İlk yerli DangerJS sənədlərini və parametrlərini qurun

2. GoCD-də xüsusi bir boru kəməri / iş yaradın

3. GoCD DangerJS-in işləməsi üçün qabıq skriptində düzgün mühit dəyişənlərini tapın və təyin edin

Ümid edirəm ki, nəzərdən keçirməni faydalı tapdınız. Məqalə xoşunuza gəlsə, xahiş edirəm onu ​​həm inkişaf etdiricilərinizlə, həm də menecerlərinizlə bölüşün və məlumatın yayılmasına kömək edin.

Hər hansı bir sualınız varsa, şərhlərdə bizimlə əlaqə qurmaqdan çəkinməyin!

PS: Danger-in də bir çox plugin variantları var, onları sınayın!