Dev maja sees: kuidas käsitleme LITE ja PRO WordPressi teemade automaatset teemapaigutust

Nagu võite ette kujutada, on teema arendamine midagi sellist, mida me siin ettevõttes üsna palju teeme. Igal hetkel on teostes umbes 4-5 uut teemaprojekti ja 80 teemat meie kataloog kokku (mis tähendab ka nende aktiivset hooldamist ja edasiarendamist) on meil käed üsna täis.


Sellises olukorras on võtmetähtsusega optimeerimine ja isegi automatiseerimine, kui vähegi võimalik.

Seega tahame täna kutsuda teid meie dev maja ukse kaudu TeemaIsle, nii öelda ja näidata teile kahte konkreetset tükki meie teema arendusmõistatusest.

Ma ei varja, et selline postitus on eksperiment. Kui teile see meeldib, toome tulevikus kindlasti välja veel selliseid asju.

Täpsemalt, tänapäeva teema on midagi, mida võib nimetada, "automaatne juurutamine ja visuaalse regressiooni arhitektuur WordPressi teema arendamiseks."

Oota, mis on teema automaatne juurutamine?

Kui te arendajast ei räägi, tähendab see inglise keeles seda, et saate WordPressi jaoks välja töötada teemasid, lasta need serverisse installida ja seejärel visuaalselt võrrelda erinevusi eelnevalt määratletud lähtejoonega, ilma et peaksite midagi käsitsi tegema..

Kõik juhtub automaatselt või pigem, "automaatselt."

Kuidas see töötab?

Selle automaatse teema juurutamise eest oleme välja töötanud kaks teenust: "Piraadi alglaadimine" ja "Piraat Wraith."

Esimest, Pirate Bootstrap, saab aktiveerida kaudu Veebihookid saidilt GitHub.

Pull-taotlusel installib see uue WordPressi eksemplari, kasutades antud teemat seatud hoidlast + kõiki teema vaikesemotist võetud pakette ja andmebaasi seadeid ThemeIsle’is.

Viimane, Piraat Wraith, teeb visuaalse regressiooni testi (aka võrdleb kahest allikast pärit pilte). Test kontrollib teema uut kasutuselevõttu ThemeIsle’i demo abil visuaalselt ja genereerib seejärel aruande. Selle aruande põhjal saate kiiresti näha, kas hiljutised muudatused mõjutasid teema välimust.

Teisisõnu, kui töötate teema kallal ja soovite veenduda, et teie uusimad koodimuudatused pole teema kujundust segamini ajanud, saate Pirate Wraithi abil autopiloodil ülesannet hallata..

Selgitame iga teenust üksikasjalikumalt:

Pirate Bootstrap – juurutab WordPressi uue eksemplari, kasutades seatud teemat

Piraatide alglaadimine asub saidil forks.themeisle.com

Pirate Bootstrap on üles ehitatud WP-CLI ja omab meetodeid WordPressi täielike juurutuste genereerimiseks põhineb ThemeIsle teemapakettidel ja sõltuvustel.

Elemendid:

GitHub Webhooks

Veebihookide abil kutsutakse piraadi alglaadimisprogrammi API-d sisse (avatakse või sünkroonitakse) päringupäringud, saates JSON-i kasulikku teavet aadressile http://forks.themeisle.com

See käivitus käivitab saidi forks.themeisle.com juurutamise töövoo. Meeldib nii:

Automaatne teema juurutamine LITE ja PRO WordPressi teemade jaoks

Näide GitHubi tõmbetaotluse kasulikust koormusest:

{
"tegevus": "avati",
"number": 1,
"pull_request": {

"pea": {
"silt": "preda-bogdan: tootmine",
"viide": "tootmine",
"sha": "****",

"repo": {
"id": 82166596,
"nimi": "zerif-lite",
"täisnimi": "preda-bogdan / zerif-lite",
"omanik": {
"Logi sisse": "preda-bogdan",

},
"privaatne": vale,

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

}
},

}
}

  • Me kasutame "sha" võti, et kontrollida, kas see on õige taotlus ja kas meil on lubatud töödelda koormat.
  • Me kasutame "Logi sisse", "nimi" ja "viide" rentniku genereerimiseks, kui seda pole olemas.

Faili struktuur

Serveri failistruktuur on seatud selliselt, et me salvestame iga üürniku oma avalikusse kausta ja meil on WordPressi tuumainstalli, mida kasutame iga üürniku sümboliga viitamiseks.

Üürniku toimikute struktuur on järgmine:

üürnik /
| _ wp / / ** WordPressi sümmeetriline südamiku install
| _ sisu / / ** WordPressi üürnike sisukaust
| | _ teemad / / ** üürniku teemakaust WordPressile
| | _ pluginate / / ** WordPressi üürnike pistikprogrammide kaust
| _ .htaccess / ** üürnikule automaatselt loodud .htaccess
| _ vhost.conf / ** alias konfiguratsioonifail apache jaoks
| _ wp-config.php / ** üürniku jaoks automaatselt genereeritud konfiguratsioonifail

Wp / kaust viitab WordPressi tuumainstallile, mida jagavad kõik üürnikud. Nii saame ühe WordPressi installi ja mitu WordPressi saitide isoleeritud eksemplari, millest igaüks sisaldab kapseldatud sätteid, faile ja ressursse.

Wp-config.php põhi- ja üürifailid

Core WordPressi wp-config.php näide:

/ ** Absoluutne tee WordPressi kataloogi. * /
nõuda_kont ($ _SERVER [‘CONTEXT_DOCUMENT_ROOT’]. ‘wp-config.php’);

/ ** Seadistab WordPressi varsid ja kaasatud failid. * /
nõua_seisu (ABSPATH. ‘wp-settings.php’);

Näide üürniku wp-config.php kohta:

(Topelt-lokkis traksides olevad väärtused asendatakse üürnike loomisel automaatselt.)

/ ** LISATUD BOOTSTRAP API-l * /
{{MYSQL_CONNECTION_TENANT_DATA}}

define (‘AUTH_KEY’, ‘{{AUTH_KEY}}’);
define (‘SECURE_AUTH_KEY’, ‘{{SECURE_AUTH_KEY}}’);
define (‘LOGGED_IN_KEY’, ‘{{LOGGED_IN_KEY}}’);
define (‘NONCE_KEY’, ‘{{NONCE_KEY}}’);
define (‘AUTH_SALT’, ‘{{AUTH_SALT}}’);
define (‘SECURE_AUTH_SALT’, ‘{{SECURE_AUTH_SALT}}’);
define (‘LOGGED_IN_SALT’, ‘{{LOGGED_IN_SALT}}’);
define (‘NONCE_SALT’, ‘{{NONCE_SALT}}’);

define (‘WP_DEBUG’, vale);

define (‘WP_CONTENT_DIR’, ‘{{rentant_folder}} / sisu’);
define (‘WP_CONTENT_URL’, ‘{{rentant_folder}} / sisu’);
define (‘WP_PLUGIN_DIR’, ‘{{rentant_folder}} / content / plugins’);
define (‘WP_PLUGIN_URL’, ‘{{rentant_url}} / content / plugins’);

if (! määratletud (‘ABSPATH’))
define (‘ABSPATH’, dirname (__ FILE__). ‘/ wp’);

Pärast üürniku loomist küsime lõpp-punktilt teema kasutuselevõtmiseks vajalike pakettide (pluginad, alamteemad, andmebaas) hankimiseks. Paketid vahemällu salvestatakse / salvestatakse serveri hiirekausta ja neid värskendatakse iga kuue tunni tagant.

Järgmine samm on kontrollida, kas teema, mida soovime juurutada, on üksainus juurutamine või tuleb genereerida baasprogrammist täiendavaid teemasid.

  • Kui tegemist on ühe juurutusega, teeme selle lihtsalt ära "ssh_url" üürnikuks / sisu / teemad /.
  • Kui tegemist pole ühe juurutamisega, tõmbame lihtsalt sisse tmp / faili, käivitame grunt genereerimise ja kopeerime seejärel saadud kaustad üürnikku / sisu / teemad /.

Grunt genereerimise ülesanne on meie jaoks standard, kui töötate teemadega, millel on mitu versiooni (tavaliselt "lite" ja "pro"), kasutades samal koodbaasi (hoidla). Näiteks kui käivitame hestia-pro hoidla jaoks grunt genereerimise, saame automaatselt ka lite versiooni.

Pärast ülaltoodu käsitlemist kasutame WP-CLI abil kõigi vajalike pakettide (pluginad ja / või alamteemad) installimist ja andmebaasi prügi importimist saidilt demo.themeisle.com.

Viimased sammud on .htaccessi ümberkirjutamise reeglite loputamine, värskendamine "siteurl" ja "Kodu" koos üürniku URL-i ja WordPress Core’i URL-iga värskendage menüüelementide ja postituste linke ning laadige lõpuks uuesti apache.

Seejärel saadame kasutajale meilisõnumi nende kahveldatud URL-iga tõmbetaotluse ja juurutamise ajal loodud logi kohta. (Iga genereeritud üürnik järgib seda üldist URL-i mudelit: http://forks.themeisle.com/github-login/theme-slug/branch/)

Piraat Bootstrap – näpunäited & nippe ja muud kasulikku teavet

Veebisaidil forks.themeisle.com minnes pääsete terminalilaadsele liidesele juurde, vajutades nuppu "~" (klahvi klahv) ja käivitage sealt hunnik kasulikke käske. Kõige asjakohasemad neist on:

Üürniku kasutuselevõtu lähtestamine

Käsk on piraatide lähtestamine üürnik [üürnik] (* teema-nälkjas) |

Näide:

piraatide lähtestamine üürniku preda-bogdan / zerif-lite / arendus |  

Või:

piraatide lähtestamine üürniku preda-bogdan / hestia / development hestia-pro |

Lähtestamiskäsk seab üürniku tagasi algsesse juurutamisolekusse (andmebaasi lähtestamine, pistikprogrammide uuesti installimine ja / või alamteemad).

Logide vaatamine

Käsk on näidata logisid. See käsk on kasulik, kui peate pärast juurutamist logifailid kontrollima ja te ei saanud veel meilisõnumeid või peate siluma.

Märkus: logifaili pööratakse juhul, kui faili suurus ületab 9000 baiti, nii et kui te ei leia otsitavat, peate võib-olla kontrollima logiarhiivi otse serveris.

Piraat Wraith – võrdleb teema kahte versiooni visuaalselt

Piraat Wraithi majutatakse saidil wraith.themeisle.com

Pirate Wraith on üles ehitatud Wraith ning tal on lõpp-punktid, et suhelda Slacki, Travise ja AJAXi taotlustega, et kasutada Wraithi võimeid ning luua visuaalse regressiooni teste ja aruandeid.

Travis

Piraat Wraith paljastab saidil wraith.themeisle.com lõpp-punkti, mis kuulab Travisi ehituse taotlusi ja "ebaõnnestub" või "möödub" ehitamine vastavalt visuaalse regressiooni testi tulemustele.

Fail .travis.yml lisasime uue maatriksi, mis määratleb olemasolevate peal uue ehituse. See seab õigused bash-skripti käitamiseks projektis ja seejärel käivitab selle.

Travise YML-fail:

maatriks:
sisaldama:
– php: "7,0"
before_install: chmod + x wraith.sh
installi:
before_script:
env: TEST_SUITE = Wraith_Visual_Regression_Testamine WRAITH_FAIL = 5
skript: ./wraith.sh

Seda saate näha "installima" ja "enne_kirjet" jäetakse tühjaks. See on otstarbekohane, nii et ehitamine ei päri toiminguid varem määratletud ehitamistest. Oleme huvitatud lihtsalt bash-skripti (skript: ./wraith.sh) käitamisest sellel ehitamisel.

Samuti märkida; seadistame keskkonnamuutuja nimega WRAITH_FAIL. Seda väärtust kasutatakse, et öelda Piraat Wraithile, milline on testi läbimise maksimaalne lubatud protsentiili erinevus.

Bashi skript:

#! / prügikast / bash
WRAITH_SLUG = $ (sõlme tüüp "nõuda (‘./ pack.json’). wraithSlug")
WRAITH_FAIL = $ {WRAITH_FAIL: -5}
keha ="{
‘taotlus’: {
‘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,
}
}"
kaja "$ TRAVIS_PULL_REQUEST_SLUG haru ehitamise käivitamine
TRAVIS_PULL_REQUEST_BRANCH ‘Travis."
väljund = $ (curl -sw "% {http_code}" -X POST \
-H "Sisu tüüp: rakendus / json" \
-H "Nõustu: taotlus / json" \
-H "Travis-API-versioon: 3" \
-d "$ {body // \ ‘/ \"}" \
‘http://wraith.themeisle.com’)
http_kood ="$ {väljund: $ {# väljund} -3}"
kui [$ {# väljund} -eq 3]; siis
keha =""
muud
keha ="$ {väljund: 0: $ {# väljund} -3}"
fi

kui [$ http_code! = 200]; siis
kaja "$ väljund";
1. väljapääs
muud
kaja "$ väljund";
väljumine 0
fi

Lühidalt, see skript loob JSON-i kasuliku koormuse, mis sisaldab Travise keskkonnamuutujaid ja kasutaja seadeid. Samuti loeb see paketit.json ja saab teema nälkja.

Skripti teises osas tehakse POST-päring via "lokkima" Pirate Wraithile ja parsib vastuse, et saada vastuse HTTP / 1.1 olekukood.

Olekukoodi kasutame "läbi kukkuda" või "üle andma" ehitama. Pirate Wraithi API saadab kehtivad HTTP / 1.1-koodid iga töödeldud taotluse kohta.

  • See tagastab täielike, läbitud testide jaoks koodi 200.
  • Kõigi muu puhul nurjub ehitamine väljumiskoodiga 1 (exit 1)

Teil võib tekkida küsimus, mis on Wraithi võrdlemine. Vastus on lihtne; selles võrreldakse piraatide alglaadimisprogrammi praeguse tõmbetaotluse rentnike juurutamist sihtteema demoga.

GitHub – Travis – Pirate Bootstrap – Pirate Wraith olelustsükli paremaks mõistmiseks on siin toodud diagramm, mis illustreerib nende teenuste töövoogu:

Pirate Bootstrap / Pirate Wraith töövoog

Nagu sa näed, GitHub teatab mõlemale Piraadi alglaadimine ja Travis uue tõmbetaotluse kohta. Bootstrap alustab üürniku lähetamist, küsib Travis Piraat Wraith testide alustamiseks.

Piraat Wraith võrdleb Demo üürniku versiooni versiooniga TeemaIsle Demo ja tagastab tulemused Travis, nii et saaks üle andma või läbi kukkuda ehitama.

Lõtv

Lisaks Travise toele on Pirate Wraithil ka lõpuosa integreerimiseks Slackiga.

Pärast Travisest tehtud ehituse lõppu (läbimine või ebaõnnestumine) genereeritakse #eyepatch kanalil aruanne, mis sisaldab linki genereeritud galeriisse ja kokkuvõtet leitud erinevustest.

Sisseehitatud on ka mõned kasulikud Slack-käsud, mida saate kasutada mis tahes kanalil (märkus. Pirate Wraithi API vastab sellele kanalile avaliku vastusega, seetõttu soovitame käske kasutada vestluses). Siin on Slacki käsud:

Teema ajaloo lähtetõmmiste lähtestamine

/ viha ajalugu [teema nälkjas]

Näide:

/ wraith-ajalugu zerif-lite |

Võrreldes teema ajaloopiltidega

/ wraith-latest [teema-nälkjas] [URL]

Näide:

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

See käsk kasutab pakutavat nälkjat, et võrrelda antud URL-i selle näpu ajalooga.

Kahe URL-i võrdlemine

/ vihasta – võrrelge [URL] vs [URL]

Näide:

/ wraith-Võrdle http://url.one vs http: //url.two 

Piraat Wraith – näpunäited & nippe ja muud kasulikku teavet

Teema ajaloo lähtetõmmiste lähtestamine

vihastatud ajaloo lähtestamine [teema-nälkjas]

See käsk lähtestab antud nälkuri ajaloo.

Võrreldes teema ajaloopiltidega

viha kontrollima hiljemalt [teema-nälkjas] [URL]

See käsk kasutab pakutavat nälkjat, et võrrelda antud URL-i selle näpu ajalooga.

Kahe URL-i võrdlemine

wraith võrrelda URL-e [URL-üks] [URL-kaks]

Logide vaatamine

Käsk on näidata logisid. See käsk on kasulik, kui peate kontrollima logifaile. See töötab samamoodi nagu Pirate Bootstrap.

Teie võta?

See võtab kokku palju meie kaks uut teenust ja kuidas neid saab kasutada WordPressi teema kasutuselevõtmise automatiseerimiseks.

Oleme loonud nii Pirate Bootstrapi kui ka Pirate Wraithi enda vajaduste rahuldamiseks, kuid usume, et need kontseptsioonid võivad olla sama kasulikud ka kõigile, kes töötavad sarnaste arendusprojektide kallal. Eriti kui loote tuletisinstrumente (nagu meie puhul näiteks profi- ja LitePress-teemad) ja soovite kontrollida, millist mõju konkreetsed koodimuudatused nende esinemistele avaldavad.

WordPressi teemade puhul on asi selles, et moodsaimate teemade koodialused kasvavad üsna kiiresti ja nende koodialuste mõnel konkreetsel elemendil võib olla ettearvamatu mõju teema muude elementide ilmumisele. Kui proovite seda kõike käsitsi tabada – vaadates asju lihtsalt oma silmaga -, võib see osutuda tõeliselt keerukaks, nii et see on alati tohutu abi algoritmi / automatiseerimise vormi tutvustamiseks seguga..

Aga mis sa arvad? Kas näete selliste tööriistade väärtust ka teiste projektide puhul??

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