Dev Evinin içərisində: Lite və PRO WordPress mövzuları üçün avtomatik tematik yerləşdirmə işini necə aparırıq

Təsəvvür etdiyiniz kimi, mövzunun inkişafı, şirkətdə burada çox iş görəcəyimiz bir şeydir. Hər an 4-5 əsər və 80 mövzu ilə yeni mövzu layihəsi qovluğumuz ümumilikdə (bu da aktiv qulluq və sonrakı inkişaf deməkdir), əllərimiz kifayət qədərdir.


Bu kimi bir mühitdə, bəzi mümkün optimallaşdırma və hətta avtomatlaşdırma vacibdir.

Beləliklə, bu gün sizi evdəki qapımızdan dəvət etmək istəyirik TemaIsle, belə danışmaq və tema inkişaf tapmacamızın iki xüsusi hissəsini göstərmək.

Bu cür yazıların bir sınaq olduğunu gizlətmirəm. Zövq alsanız, gələcəkdə bu kimi daha çox şey çıxarmağınıza əmin olacağıq.

Xüsusilə, bu günün mövzusu deyilə biləcək bir şeydir, "WordPress mövzu inkişafı üçün avtomatik yerləşdirmə və vizual reqressiya memarlığı."

Gözləyin, avtomatik tema yerləşdirmə nədir?

Əgər geliştirici danışmasanız, ingilis dilində nə deməkdir, WordPress üçün mövzular hazırlaya, onları bir serverə yerləşdirə və sonra əl ilə heç bir şey etmədən fərqləri vizual olaraq əvvəlcədən təyin edilmiş bir təməllə müqayisə edə bilərsiniz..

Hamısı avtomatik olaraq olur, daha doğrusu, "avtomatik olaraq."

Bu necə işləyir?

Bu avtomatik tematik yayımın qayğısına qalmaq üçün iki xidmət hazırladıq: "Pirat Bootstrap" və "Pirat Wraith."

Birincisi, Pirate Bootstrap, vasitəsi ilə aktivləşdirilə bilər Webhooks GitHub-dan.

Pull Request-də, Tema Temsilçisinin Tema Defoltundan götürülmüş bütün paketlər və verilənlər bazası parametrlərindən istifadə edərək yeni bir WordPress nümunəsini yerləşdirir..

Sonuncu, Pirate Wraith, Visual Regression Test (aka iki mənbədən görüntüləri müqayisə edərək) edir. Test Tema’nın Tema Teması’nın demo qarşı yeni yerləşdirilməsini yoxlayır – vizual olaraq – sonra bir hesabat yaradır. Bu hesabata əsasən, son dəyişikliklərin mövzunun görünüşünə təsir etdiyini tez görə bilərsiniz.

Başqa sözlə, hər hansı bir mövzu üzərində işləyəndə və son kod dəyişikliklərinizin tema dizaynını qarışdırmadığından əmin olmaq istəsəniz, Pirate Wraith-i avtopilotda vəzifəni yerinə yetirmək üçün istifadə edə bilərsiniz..

Hər bir xidməti daha ətraflı izah edək:

Pirate Bootstrap – müəyyən bir mövzu istifadə edərək WordPress-in yeni bir nümunəsini yerləşdirir

Pirate Bootstrap forks.themeisle.com saytında yerləşdirilib

Pirat Bootstrap üstündə qurulub WP-CLItam WordPress yerləşdirmələri yaratmaq üçün metodlara malikdir ThemeIsle tema paketləri və asılılıqlara əsaslanaraq.

Elementlər:

GitHub Webhooks

Webhooks, Pirate Bootstrap’ın API’nə (açılmış və ya sinxronizasiya edilmiş) müraciət etmək üçün http://forks.themeisle.com saytına JSON yükləmə göndərməklə müraciət etmək üçün istifadə olunur.

Bu vuruş – forks.themeisle.com saytında yerləşdirmə iş prosesinə başlayır. Kimi:

Lite və PRO WordPress Mövzular üçün avtomatik tematik yerləşdirmə

Bir GitHub Pull İstək yükünün nümunəsi:

{
"fəaliyyət": "açıldı",
"nömrə": 1,
"pull_request": {

"baş": {
"etiket": "preda-bogdan: istehsal",
"ref": "istehsal",
"şa": "****",

"repo": {
"id": 82166596,
"adı": "zerif-lite",
"tam adı": "preda-bogdan / zerif-lite",
"sahibi": {
"daxil ol": "preda-bogdan",

},
"özəl": yalan,

"git_url": "git: //github.com/preda-bogdan/zerif-lite.git",
"ssh_url": "[email protected]: preda-bogdan / zerif-lite.git",
"klone_url": "https://github.com/preda-bogdan/zerif-lite.git",
"svn_url": "https://github.com/preda-bogdan/zerif-lite",

}
},

}
}

  • Biz istifadə edirik "şa" düzgün bir sorğunun olub olmadığını və yük yükünün emal edilməsinə icazə verilmədiyini yoxlamaq üçün açar.
  • İstifadə edirik "daxil ol", "adı" və "ref" mövcud deyilsə kiracı yaratmaq.

Fayl quruluşu

Serverdəki fayl quruluşu, hər bir kiracını öz şəxsi qovluğunda saxlamağımız və hər bir kiracı üçün bir simvolu ilə istinad etmək üçün istifadə etdiyimiz WordPress-in əsas quraşdırılmasına malikdir..

Kiracı fayl quruluşu aşağıdakı kimidir:

icarəçi /
| _ wp / / ** WordPress-in symlink əsas quruluşu
| _ məzmun / / WordPress üçün kiracı məzmun qovluğu
| | _ temalar / / WordPress üçün icarəçi mövzu qovluğu
| | _ plugins / / ** WordPress üçün kiracı plaginləri qovluğu
| _ .htaccess / ** avtomatik yaradılan. Kiracı üçün
| _ vhost.conf / ** apache üçün alias config faylı
| _ wp-config.php / ** Kiracı üçün avtomatik yaradılan konfiqurasiya faylı

Wp / qovluq bütün kirayəçilər tərəfindən paylaşılan WordPress-in əsas quraşdırılmasına istinad edir. Bu yolla, WordPress-in vahid bir quraşdırılmasına və WordPress saytlarının çoxsaylı təcrid olunmuş vəziyyətlərinə sahib ola bilərik, hər biri qapalı parametrlər, fayllar və mənbələr ilə.

Bu wp-config.php əsas və icarəçi faylları

Əsas WordPress wp-config.php nümunəsi:

/ ** WordPress qovluğuna mütləq yol. * /
tələb_once ($ _SERVER [‘CONTEXT_DOCUMENT_ROOT’]. ‘wp-config.php’);

/ ** WordPress dəyişir və daxil edilmiş faylları təyin edir. * /
tələb_once (ABSPATH. ‘wp-settings.php’);

Kiracı wp-config.php misalı:

(İkiqat qıvrım aşırma içərisində olan dəyərlər kiracı yaratdıqda avtomatik olaraq dəyişdirilir.)

/ ** BOOTSTRAP API əlavə edilmişdir * /
{{MYSQL_CONNECTION_TENANT_DATA}}

müəyyənləşdirin (‘AUTH_KEY’, ‘{{AUTH_KEY}}’);
müəyyənləşdirmək (‘SECURE_AUTH_KEY’, ‘{{SECURE_AUTH_KEY}}’);
müəyyənləşdirin (‘LOGGED_IN_KEY’, ‘{{LOGGED_IN_KEY}}’);
müəyyənləşdirin (‘NONCE_KEY’, ‘{{NONCE_KEY}}’);
müəyyənləşdirin (‘AUTH_SALT’, ‘{{AUTH_SALT}}’);
define (‘SECURE_AUTH_SALT’, ‘{{SECURE_AUTH_SALT}}’);
müəyyənləşdirin (‘LOGGED_IN_SALT’, ‘{{LOGGED_IN_SALT}}’);
müəyyənləşdirin (‘NONCE_SALT’, ‘{{NONCE_SALT}}’);

define (‘WP_DEBUG’, yalan);

müəyyənləşdirin (‘WP_CONTENT_DIR’, ‘{{tenant_folder}} / content’);
müəyyənləşdirin (‘WP_CONTENT_URL’, ‘{{tenant_folder}} / content’);
define (‘WP_PLUGIN_DIR’, ‘{{tenant_folder}} / content / plugins’);
define (‘WP_PLUGIN_URL’, ‘{{tenant_url}} / content / plugins’);

əgər (! müəyyənləşdirilib (‘ABSPATH’))
define (‘ABSPATH’, dirname (__ FILE__). ‘/ wp’);

Kiracı yaradıldıqdan sonra mövzunun yerləşdirilməsi üçün lazım olan paketləri (plaginlər, uşaq mövzuları, verilənlər bazası) almaq üçün son nöqtəni soruşuruq. Paketlər yaddaşda saxlanılır / serverdəki zibil qutusunda saxlanılır və hər altı saatda yenilənir.

Növbəti addım, yerləşdirmək istədiyimiz mövzunun tək yerləşdirilməsini və ya əsasdan əlavə mövzular yaratmağını yoxlamaqdır.

  • Tək bir yerləşdirmə halında, yalnız bir git çəkərək istifadə edirik "ssh_url" kiracıya / məzmuna / mövzulara /.
  • Tək bir yerləşdirmə olmadığı təqdirdə, tmp / daxilində bir git çəkirik, kövrəklik yaradırıq və nəticədə yaranan qovluqları kiracı / məzmun / temalara köçürürük..

Birdən çox versiyaya sahib olan mövzularla işləyərkən kədərləndirici tapşırıq bizim üçün standartdır "lite" və "pro"eyni kod bazasından (depo) istifadə edərkən. Məsələn, əgər biz hestia-pro depo üçün kədərli bir versiya işlədiriksə, lite versiyasını da avtomatik alacağıq.

Yuxarıda göstərilənləri işlədikdən sonra, bütün tələb olunan paketləri (pluginlər və / və ya uşaq mövzuları) quraşdırmaq və demo.themeisle.com-dan verilənlər bazası zibilini idxal etmək üçün WP-CLI-dən istifadə edirik..

Son addımlar .htaccess yenidən yazma qaydalarını yeniləmək, yeniləməkdir "sayturl" və "ev" kiracı URL və WordPress Core üçün URL ilə, menyu maddələri və yazıları üçün bağlantıları yeniləyin, sonra nəhayət apache-ni yenidən yükləyin.

Daha sonra istifadəçiyə Çəkmə tələbi və yerləşdirmə zamanı yaradılan log üçün çəngəl URL-ləri ilə bir e-poçt göndəririk. (Hər yaradılan kiracı bu ümumi URL modelini izləyir: http://forks.themeisle.com/github-login/theme-slug/branch/)

Pirat Bootstrap – məsləhətlər & tövsiyələr və digər faydalı məlumatlar

Forks.themeisle.com saytına girdiyiniz zaman, düyməni basaraq terminal kimi bir interfeysə daxil ola bilərsiniz "~" (tilde düyməsini) seçin və sonra bir dəstə faydalı əmrləri oradan işə salın. Ən uyğun olanlar:

Kiracının yerləşdirilməsinə yenidən başlanılır

Bu əmr pirat sıfırlama icarədarı [icarəçi] (* mövzu-slug) |

Misal:

pirat yenidən kiracı preda-bogdan / zerif-lite / inkişaf |  

Və ya:

pirat sıfırlama icarəçi preda-bogdan / hestia / inkişaf hestia-pro |

Yeniləmə əmri kiracını orijinal yerləşdirmə vəziyyətinə qaytarır (verilənlər bazasını yenidən qurmaq, plaginləri və / və ya uşaq mövzularını yenidən quraşdırmaq).

Günlüklərə baxır

Komanda şou qeydləridir. Bu əmr bir yerləşdirildikdən sonra giriş sənədlərini yoxlamaq lazımdırsa və hələ bir e-poçt almamısınızsa və ya diskussiya etməlisinizsə faydalıdır.

Qeyd: Əgər fayl ölçüsü 9000 baytdan çox olursa, giriş faylı dönüşdürülür, buna görə axtardığınızı tapa bilmirsinizsə, giriş arxivini birbaşa serverdə yoxlamaq lazım ola bilər.

Pirate Wraith – bir mövzunun iki versiyasını vizual olaraq müqayisə edir

Pirate Wraith wraith.themeisle.com saytında qəbul edilir

Pirate Wraith üstündə qurulub Söz və Wraith imkanlarından istifadə etmək və Visual Reqressiya Testləri və Hesabatları yaratmaq üçün Slack, Travis və AJAX tələbləri ilə qarşılıqlı əlaqə qurmaq üçün son nöqtələrə malikdir..

Travis

Pirate Wraith bir Travis qurma tələblərini dinləyən wraith.themeisle.com saytında son nöqtəni açır və "uğursuz olur" və ya "keçir" Görmə Reqressiya Testinin nəticələrinə görə quruluş.

.Travis.yml faylının içərisində mövcud olanların üstündə yeni bir quruluşu təyin edən yeni bir matris əlavə etdik. Bu, layihə daxilində bash skriptini işə salmaq üçün icazələr təyin edir və sonra onu icra edir.

Travis YML faylı:

matris:
daxildir:
– php: "7.0"
əvvəl_kəsmək: chmod + x wraith.sh
yüklemek:
əvvəl_script:
env: TEST_SUITE = Yazı_Vizual_Reqrasiya_Testing WRAITH_FAIL = 5
skript: ./wraith.sh

Bunu görə bilərsiniz "yüklemek" və "əvvəl_script" boş qalırlar. Quruluş əvvəlcədən müəyyən edilmiş quruluşlardan əməliyyata miras qalmaması üçün məqsədlidir. Biz yalnız bu quruluşda bash skriptini (skript: ./wraith.sh) işlətməkdə maraqlıyıq.

Qeyd etmək üçün; WRAITH_FAIL adlı bir mühit dəyişənini təyin edirik. Bu dəyər Pirate Wraith-ə bir test keçmək üçün icazə verilən maksimum faiz fərqinin nə olduğunu izah etmək üçün istifadə olunur.

Baş yazısı:

#! / bin / bash
WRAITH_SLUG = $ (node ​​-pe.) "tələb edin (‘./ pack.json’). wraithSlug")
WRAITH_FAIL = $ {WRAITH_FAIL: -5}
bədən ="{
‘tələb’: {
‘travis_event_type’: ‘$ TRAVIS_EVENT_TYPE’,
‘travis_pull_request’: ‘$ TRAVIS_PULL_REQUEST’,
‘travis_repo_slug’: ‘$ TRAVIS_PULL_REQUEST_SLUG’,
‘travis_branch’: ‘$ TRAVIS_PULL_REQUEST_BRANCH’,
‘wraithSlug’: $ WRAITH_SLUG,
‘wraithFail’: $ WRAITH_FAIL,
}
}"
əks-səda "$ TRAVIS_PULL_REQUEST_SLUG filialının qurulması
Travis’də $ TRAVIS_PULL_REQUEST_BRANCH ‘."
çıxış = $ (curl -sw "% {http_code}" -X POST \
-H "Məzmun tipi: tətbiqi / json" \
-H "Qəbul edin: ərizə / json" \
-H "Travis-API-Versiya: 3" \
-d "$ {bədən // \ ‘/ \"}" \
‘http://wraith.themeisle.com’)
http_code ="$ {çıxış: $ {# çıxış} -3}"
əgər [$ {# çıxış} -eq 3]; sonra
bədən =""
başqa
bədən ="$ {çıxış: 0: $ {# çıxış} -3}"
fi

əgər [$ http_code! = 200]; sonra
əks-səda "$ çıxdı";
çıxış 1
başqa
əks-səda "$ çıxdı";
çıxış 0
fi

Qısacası, bu skript standart Travis mühit dəyişənləri və istifadəçi təyin olunanları olan JSON pay yükü yaradır. Ayrıca, packages.json-u oxuyur və mövzu şifrəsini alır.

Ssenarinin ikinci hissəsi bir POST tələbi ilə "qıvrılmaq" Pirate Wraith-ə cavabın HTTP / 1.1 status kodunu əldə etmək üçün cavabı təhlil edin.

Biz status kodunu istifadə edirik "uğursuz" və ya "keçmək" qurmaq. Pirate Wraith API, emal etdiyi hər bir tələb üçün etibarlı HTTP / 1.1 kodlarını qaytarır.

  • Tamamlanmış, keçmiş testlər üçün 200 kodu qaytaracaqdır.
  • Başqa hər şey üçün qurulma 1 çıxış kodu ilə uğursuz olacaq (çıxış 1)

Siz Wraith müqayisə nə olduğunu merak bilər. Cavab sadədir; Pirate Bootstrap-dan hazırkı Pull tələbinin icarəçi yerləşdirilməsini hədəf mövzu demo ilə müqayisə edir.

GitHub – Travis – Pirate Bootstrap – Pirate Wraith həyat dövrünü daha yaxşı başa düşmək üçün burada bu xidmətlərin iş prosesini göstərən bir diaqram təqdim olunur:

Pirate Bootstrap / Pirate Wraith iş axını

Gördüyünüz kimi, GitHub hər ikisini xəbərdar edir Pirat BootstrapTravis yeni çəkmə istəyi haqqında. Bootstrap kiracını yerləşdirməyə başlayır, Travis soruşur Pirat Wraith testlərə başlamaq üçün.

Pirat Wraith ilə Demo Kiracı versiyasını müqayisə edir TemaIsle Demo və nəticələrini geri qaytarır Travis, deyə bilər keçmək və ya uğursuz qurmaq.

Kəskin

Travis dəstəyinə əlavə olaraq Pirate Wraith, Slack ilə inteqrasiya üçün son nöqtəyə malikdir.

Travis-dən bir qurğu bitdikdən sonra (keçib ya keçə bilmir), #eyepatch kanalının içərisində yaradılan qalereyaya bir keçid və aşkar edilmiş fərqlərin xülasəsi olan bir hesabat yaradılır..

Ayrıca hər hansı bir kanalda istifadə edə biləcəyiniz bir neçə faydalı Slack əmrləri var (Qeyd: Pirate Wraith API bu kanalda ictimai cavab ilə cavab verəcəkdir, buna görə əmrləri öz-özünə söhbətdə istifadə etməyi məsləhət görürük). Slack üçün əmrlər:

Bir mövzu tarixinin ilkin görüntülərini yenidən qurmaq

/ vrit-tarix [mövzu-slug]

Misal:

/ yazılı-tarix zerif-lite |

Bir mövzunun tarixi görüntüləri ilə müqayisə

/ vraith-latest [theme-slug] [url]

Misal:

/ wraith-latest zerif-lite http: //forks.url/pb/zerif-lite |

Bu əmr verilmiş URL-ləri həmin şlakın tarixi ilə müqayisə etmək üçün təqdim olunan şlakdan istifadə edir.

İki URL müqayisə

/ wraith-müqayisə [url] vs [url]

Misal:

/ wraith-müqayisə http://url.one vs http: //url.two 

Pirate Wraith – məsləhətlər & tövsiyələr və digər faydalı məlumatlar

Bir mövzu tarixinin ilkin görüntülərini yenidən qurmaq

wraith sıfırlama tarixi [tema-slug]

Bu əmr verilmiş şlakın tarixini bərpa edir.

Bir mövzunun tarixi görüntüləri ilə müqayisə

wraith check son [tema-slug] [url]

Bu əmr verilmiş URL-ləri həmin şlakın tarixi ilə müqayisə etmək üçün təqdim olunan şlakdan istifadə edir.

İki URL müqayisə

wraith urlləri müqayisə edin [url-one] [url-two]

Günlüklərə baxır

Komanda şou qeydləridir. Giriş sənədlərini yoxlamaq lazımdırsa, bu əmr faydalıdır. Pirate Bootstrap-da olduğu kimi eyni şəkildə işləyir.

Sənin əlin?

Bu, iki yeni xidmətimizi və WordPress mövzularının yerləşdirilməsini avtomatlaşdırmaq üçün necə istifadə olunacağını göstərir.

Həm Pirate Bootstrap, həm də Pirate Wraith’i öz ehtiyaclarımıza xidmət etmək üçün yaratdıq, amma inanırıq ki, bu anlayışlar oxşar dev layihələri üzərində işləyən hər kəs üçün faydalı ola bilər. Xüsusilə törəməli məhsullar (məsələn, pro və lite WordPress mövzuları) qurursanız və xüsusi kod dəyişikliklərinin görünüşlərinə necə təsir etdiyini yoxlamaq istəyirsinizsə.

WordPress mövzularında olan şey ən müasir mövzuların kod bazalarının olduqca sürətlə böyüməsinə meyllidir və bu kod bazalarının bəzi müəyyən elementləri mövzunun digər elementlərinin görünüşünə gözlənilməz təsir göstərə bilər. Bütün bunları əllə tutmağa çalışmaq – hər şeyi öz insan gözlərinizlə görmək – həqiqətən çətin ola bilər, buna görə də alqoritm / avtomatlaşdırmanın hansısa bir formasını qarışıqda tanıtdırmaq üçün böyük bir köməkdir.

Bəs sən nə düşünürsən? Digər layihələr üçün də bu kimi vasitələrin dəyərini görürsünüzmü??

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map