A Dev Házon belül: Hogyan kezeljük az automatikus témakör-telepítést a LITE és a PRO WordPress témákhoz

Mint képzelnéd, a témafejlesztés olyan, amit nagyon sokat teszünk itt, a vállalatnál. Körülbelül 4-5 új témaprojekt működik a munkákban egy adott pillanatban, és 80 téma a 2006-ban könyvtárunk Összességében (ami azt is jelenti, hogy aktívan karbantartjuk és tovább fejlesztjük azokat is) meglehetősen tele van a kezünk.


Ilyen környezetben kulcsfontosságú az optimalizálás és az automatizálás, ha lehetséges.

Tehát ma azt akarjuk, hogy meghívjuk Önt a dev ház ajtaján, a ThemeIsle, úgy mondhatjuk, és megmutathatjuk Önnek a témafejlesztő puzzle két konkrét részét.

Nem rejtem el, hogy ez a fajta üzenet kísérlet. Ha élvezi, akkor a jövőben gondoskodunk arról, hogy még több hasonló dolgot hozzunk létre.

Pontosabban, a mai téma az, amit meg lehet nevezni, "automatikus telepítés és vizuális regressziós architektúra a WordPress témafejlesztéséhez."

Várjon, mi az automatikus témakör-telepítés?

Ha nem beszél fejlesztőről, akkor angolul ez azt jelenti, hogy kidolgozhat témákat a WordPress számára, telepítheti őket egy kiszolgálóra, majd vizuálisan összehasonlíthatja a különbségeket egy előre meghatározott alapvonallal anélkül, hogy kézzel kellene tennie valamit.

Minden automatikusan történik, vagy inkább, "automágikusan."

Hogy működik ez?

Két szolgáltatást fejlesztettünk ki az automatikus témakiépítés érdekében: "Kalóz Bootstrap" és "Kalóz Wraith."

Az első, a Pirate Bootstrap, a következővel aktiválható Webhooks a GitHub-tól.

Pull Request esetén új WordPress példányt telepít, egy adott témát használva egy beállított lerakatból, valamint a téma alapértelmezett bemutatójából vett összes csomagot és adatbázis-beállítást a ThemeIsle-en..

Ez utóbbi, a Pirate Wraith vizuális regressziós tesztet végez (más néven összehasonlítja a két forrásból származó képeket). A teszt vizuálisan ellenőrzi a téma új telepítését a ThemeIsle bemutatóján, majd jelentést készít. A jelentés alapján gyorsan megnézheti, hogy a legutóbbi változások befolyásolták-e a téma megjelenését.

Más szavakkal: amikor egy témán dolgozik, és azt szeretné, hogy megbizonyosodjon arról, hogy a legújabb kódváltozások nem zavarják-e a téma kialakítását, a Pirate Wraith segítségével kezelheti a feladatot az automatikus pilóta.

Magyarázza el részletesebben az egyes szolgáltatásokat:

Pirate Bootstrap – telepíti a WordPress új példányát egy meghatározott téma használatával

A Pirate Bootstrap a forks.themeisle.com webhelyen található

A Pirate Bootstrap a tetején épül WP-CLI és rendelkezik módszerekkel a teljes WordPress telepítés generálására a ThemeIsle témacsomagok és függőségek alapján.

Az elemek:

GitHub Webhooks

A webhookok segítségével felhívják a Pirate Bootstrap API-ját (megnyitott vagy szinkronizált) Pull Requests-re, JSON hasznos teher küldésével a http://forks.themeisle.com webhelyre.

Ez a kick-indítja a forks.themeisle.com telepítési munkafolyamatot. Tetszik:

Automatikus témakiépítés a LITE és a PRO WordPress témákhoz

Példa GitHub Pull Request hasznos rakományra:

{
"akció": "nyitott",
"szám": 1,
"pull_request": {

"fej": {
"címke": "Preda-bogdan: gyártás",
"ref": "Termelés",
"sha": "****",

"repo": {
"id": 82166596,
"név": "zerif-lite",
"teljes név": "preda-Bogdan / zerif-lite",
"tulajdonos": {
"Belépés": "Preda-bogdan",

},
"magán": hamis,

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

}
},

}
}

  • Mi használjuk a "sha" kulcsot annak ellenőrzéséhez, hogy érvényes kérés-e, és vajon engedélyezzük-e a hasznos adat feldolgozását.
  • Használunk "Belépés", "név" és "ref" hogy bérlőt generáljon, ha nem létezik.

A fájl szerkezete

A kiszolgálón található fájlszerkezet úgy van beállítva, hogy minden bérlőt saját nyilvános mappájában tároljuk, és rendelkezik a WordPress központi telepítésével, amelyet referenciaként használunk minden bérlő számára.

A bérlői fájl szerkezete a következő:

bérlő/
| _ wp / / ** a WordPress Symlink központi telepítése
| _ tartalom / / ** a WordPress bérlői tartalommappája
| | _ témák / / ** bérlő témamappája a WordPresshez
| | _ plugins / / ** bérlő plugins mappa a WordPresshez
| _ .htaccess / ** automatikusan létrehozott .htaccess a bérlő számára
| _ vhost.conf / ** álnév konfigurációs fájl az apache-hez
| _ wp-config.php / ** automatikusan létrehozott konfigurációs fájl a bérlő számára

A wp / mappa a WordPress központi telepítésére utal, amelyet minden bérlő megoszt. Ily módon egyetlen telepítéssel is rendelkezhetünk a WordPress-rel és a WordPress-helyek több különálló példányával, mindegyikben beágyazott beállításokkal, fájlokkal és erőforrásokkal.

A wp-config.php mag- és bérlői fájlok

Alapvető WordPress wp-config.php példa:

/ ** Abszolút út a WordPress könyvtárhoz. * /
Követelmény: $ _SERVER [‘CONTEXT_DOCUMENT_ROOT’]. ‘wp-config.php’);

/ ** Beállítja a WordPress verziókat és a mellékelt fájlokat. * /
igényel_koncert (ABSPATH. ‘wp-settings.php’);

Bérlő wp-config.php példa:

(A kettős göndör tartóban lévő értékek automatikusan cserélésre kerülnek a bérlő létrehozásakor.)

/ ** A BOOTSTRAP API HOZZÁADÁSA * /
{{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’, hamis);

define (‘WP_CONTENT_DIR’, ‘{{tenant_folder}} / content’);
define (‘WP_CONTENT_URL’, ‘{{tenant_folder}} / content’);
define (‘WP_PLUGIN_DIR’, ‘{{tenant_folder}} / content / plugins’);
define (‘WP_PLUGIN_URL’, ‘{{tenant_url}} / content / plugins’);

if (! meghatározott (‘ABSPATH’))
define (‘ABSPATH’, dirname (__ FILE__). ‘/ wp’);

A bérlő létrehozása után lekérdezzünk egy végpontot, hogy lehívjuk a téma telepítéséhez szükséges csomagokat (plugins, gyermek témák, adatbázis). A csomagokat gyorsítótárban tárolják / tárolják a szerver reteszelő mappájában, és hat óránként frissítik őket.

A következő lépés annak ellenőrzése, hogy a telepíteni kívánt téma egyetlen telepítés, vagy kell-e további témákat generálnia az alaptól..

  • Ha egy telepítésről van szó, akkor egyszerűen csak használjuk "ssh_url" bérlőnek / tartalom / témák /.
  • Ha ez nem egyetlen telepítés, akkor megtesszük a tmp / elemet, futtatjuk a grunt generálást, majd a kapott mappákat a bérlő / tartalom / témák /.

A grunt generáló feladat standard nekünk, ha olyan témákkal dolgozunk, amelyek több verzióval rendelkeznek (általában "lite" és "pro"), ugyanakkor ugyanazt a kódbázist (lerakat) használja. Például, ha futtatunk grunt generálást a hestia-pro tárolóhoz, akkor automatikusan megkapjuk a Lite verziót is.

A fentiek kezelése után a WP-CLI használatával telepítjük az összes szükséges csomagot (plugins és / vagy gyermek témák), és importáljuk az adatbázis-dumpot a demo.themeisle.com webhelyről.

Az utolsó lépés a .htaccess újraírás szabályainak frissítése, frissítése "siteurl" és "itthon" a bérlő URL-jével és a WordPress Core URL-jével frissítse a menüelemek és a hozzászólások linkeit, majd végezze újra az apache-t.

Ezután e-mailt küldünk a felhasználónak a villás URL-jével a pull kérésre és a telepítés során generált naplóra. (Minden generált bérlő követi ezt az általános URL-modellt: http://forks.themeisle.com/github-login/theme-slug/branch/)

Kalóz Bootstrap – tippek & trükkök és egyéb hasznos információk

A forks.themeisle.com webhelyre való belépéshez a terminálszerű felület eléréséhez nyomja meg a gombot "~" (tilde gomb), majd futtasson onnan egy hasznos parancsot. A legrelevánsabbak a következők:

A bérlő telepítésének visszaállítása

A parancs a kalóz alaphelyzetbe állítása bérlő [bérlő] (* theme-slug) |

Példa:

kalóz alaphelyzetbe állítása bérlő preda-bogdan / zerif-lite / fejlesztés |  

Vagy:

kalóz alaphelyzetbe állítása bérlő preda-bogdan / hestia / fejlesztés hestia-pro |

A reset parancs visszaállítja a bérlőt az eredeti üzembe helyezési állapotba (adatbázis visszaállítása, beépülő modulok újratelepítése és / vagy gyermek témák).

A naplók megtekintése

A parancs show logs. Ez a parancs akkor hasznos, ha a telepítés után ellenőriznie kell a naplófájlokat, és még nem kapott e-mailt, vagy hibakeresésre van szüksége.

Megjegyzés: Ha a fájlméret meghaladja a 9000 bájtot, akkor a naplófájlt elforgatják, tehát ha nem találja meg azt, amit keres, akkor a napló-archívumot közvetlenül a szerveren kell ellenőriznie.

Pirate Wraith – összehasonlítja a téma két verzióját vizuálisan

A Pirate Wraith házigazdája a wraith.themeisle.com

A Pirate Wraith épül a képmás és rendelkezik végpontokkal a Slack, a Travis és az AJAX kérésekkel való interakcióhoz a Wraith képességek kiaknázása, valamint a vizuális regressziós tesztek és jelentések létrehozása érdekében.

Travis

A Pirate Wraith egy olyan végpontot tesz közzé a wraith.themeisle.com webhelyen, amely meghallgatja a Travis build kéréseit, és "nem sikerül" vagy "bérletek" a vizuális regressziós teszt eredményeinek megfelelően.

A .travis.yml fájl belsejébe egy új mátrixot adtunk hozzá, amely meghatároz egy új felépítést a meglévők tetejére. Ez beállítja a bash szkript futtatásához a projektben engedélyeket, majd végrehajtja azokat.

A Travis YML fájl:

mátrix:
a következők:
– php: "7.0"
install_install: chmod + x wraith.sh
telepítés:
before_script:
env: TEST_SUITE = Wraith_Visual_Regression_Testing WRAITH_FAIL = 5
forgatókönyv: ./wraith.sh

Láthatja ezt "telepítés" és "before_script" üresen maradnak. Ez szándékosan van, így az építkezés nem örököli a korábban meghatározott építmények mûveleteit. Csak az a bash szkript (szkript: ./wraith.sh) futtatása ezen az építkezésen.

Meg kell jegyezni; beállítunk egy WRAITH_FAIL nevű környezeti változót. Ezt az értéket arra használják, hogy megmondják a Pirate Wraith-nak, hogy mekkora a maximális megengedett százalékos különbség a teszt lebonyolításához.

A Bash szkript:

#! / Bin / bash
WRAITH_SLUG = $ (csomópont-típus "igényelnek ( “./ package.json). wraithSlug")
WRAITH_FAIL = $ {WRAITH_FAIL: -5}
test ="{
‘kérés’: {
‘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,
}
}"
visszhang "$ TRAVIS_PULL_REQUEST_SLUG ág létrehozásának indítása
$ TRAVIS_PULL_REQUEST_BRANCH ”a Travis-on."
output = $ (curl -sw "% {HTTP_CODE}" -X POST \
-H "Tartalom-típus: application / json" \
-H "Elfogadás: alkalmazás / json" \
-H "Travis-API-verzió: 3" \
-d "$ {Body // \ ‘/ \"}" \
“Http://wraith.themeisle.com)
HTTP_CODE ="$ {Kimenet: $ {# kimeneti} -3}"
ha [$ {# output} -eq 3]; akkor
test =""
más
test ="$ {Kimenet: 0: $ {# kimeneti} -3}"
fi

ha [$ http_code! = 200]; akkor
visszhang "$ output";
1. kijárat
más
visszhang "$ output";
kijárat 0
fi

Röviden: ez a szkript létrehoz egy JSON hasznos terhet, amely tartalmazza az alapértelmezett Travis környezeti változókat és a felhasználó által beállított változókat. Ezenkívül elolvassa a csomagok.jsont, és megkapja a témacsipet.

A szkript második része POST kérést küld keresztül "curl" a Pirate Wraith-hez, és elemzi a választ, hogy megkapja a válasz HTTP / 1.1 állapotkódját.

Az állapotkódot használjuk a következőhöz: "Fail" vagy "elhalad" az épít. A Pirate Wraith API érvényes HTTP / 1.1 kódot ad vissza minden feldolgozott kéréshez.

  • A 200, a teljes, sikeres tesztek eredményét adja vissza.
  • Minden más esetében az összeállítás meghiúsul 1-es kilépési kóddal (1. kilépés)

Kíváncsi lehet, mi a Wraith összehasonlítása. A válasz egyszerű; összehasonlítja a Pirate Bootstrap jelenlegi Pull Request bérlői telepítését a cél téma demojával.

A GitHub – Travis – Pirate Bootstrap – Pirate Wraith életciklusának jobb megértése érdekében itt található egy diagram, amely bemutatja a következő szolgáltatások munkafolyamatait:

Kalóz Bootstrap / Pirate Wraith munkafolyamat

Amint látod, GitHub értesíti mindkettőt Kalóz Bootstrap és Travis egy új Pull Request-ről. A Bootstrap elkezdi bérlőt telepíteni – kérdezi Travis Kalóz Wraith a tesztek elindításához.

Kalóz Wraith összehasonlítja a Demo bérlői verzióját a ThemeIsle Bemutató, és visszatér az eredmények Travis, hogy képes legyen elhalad vagy Fail az épít.

Laza

A Travis támogatása mellett a Pirate Wraith rendelkezik egy végponttal a Slack-hoz történő integrációhoz.

Miután a Travis-tól egy építkezés befejeződött (átadás vagy sikertelen), jelentést generálunk #eyepatch csatornán, amely tartalmazza a létrehozott galéria linkjét és a talált különbségek összefoglalását.

Beépített néhány hasznos Slack-parancs is, amelyeket bármilyen csatornán használhat (Megjegyzés: A Pirate Wraith API nyilvános válaszokkal válaszol arra a csatornára, ezért javasoljuk a parancsok használatát az öncsevegésben). Íme a Slack parancsai:

A téma korábbi alapképeinek visszaállítása

/ wraith-történelem [téma-meztelencsiga]

Példa:

/ wraith-történelem zerif-lite |

Összehasonlítva egy téma előzményképeivel

/ wraith-legújabb [téma-meztelen csiga] [url]

Példa:

/ wraith-legújabb zerif-lite http: //forks.url/pb/zerif-lite |

Ez a parancs a megadott csipet használja az adott URL és az cukor előzményeinek összehasonlításához.

Két URL összehasonlítása

/ wraith-Hasonlítsd össze [url] vs [url]

Példa:

/ wraith – hasonlítsa össze a http://url.one vs http: //url.two fájlt 

Kalóz Wraith – tippek & trükkök és egyéb hasznos információk

A téma korábbi alapképeinek visszaállítása

wraith reset history [téma-meztelencsiga]

Ez a parancs visszaállítja az adott slug előzményeit.

Összehasonlítva egy téma előzményképeivel

Wraith Check legújabb [téma-meztelencsiga] [url]

Ez a parancs a megadott csipet használja az adott URL és az cukor előzményeinek összehasonlításához.

Két URL összehasonlítása

wraith összehasonlítja az URL-eket [url-one] [url-two]

A naplók megtekintése

A parancs show logs. Ez a parancs akkor hasznos, ha ellenőrizni kell a naplófájlokat. Ugyanúgy működik, mint a Pirate Bootstrap esetében.

Az ön veszi?

Ez nagyjából összefoglalja két új szolgáltatásunkat és azt, hogy miként lehet felhasználni a WordPress téma telepítésének automatizálására.

A Kalóz Bootstrap-ot és a Pirate Wraith-t egyaránt létrehoztuk saját szükségleteink kiszolgálására, de úgy gondoljuk, hogy ezek a koncepciók ugyanolyan hasznosak lehetnek bárki számára, aki hasonló fejlesztési projektekkel foglalkozik. Különösen akkor, ha származékos termékeket épít (például a mi esetünkben a pro és a Lite WordPress témákat), és meg szeretné tudni, hogy milyen hatást gyakorolnak az egyedi kódváltozások megjelenésükre..

A WordPress témáknál az a helyzet, hogy a legmodernebb témák kódbázisai meglehetősen gyorsan növekednek, és ezeknek a kódbázisoknak egyes elemei kiszámíthatatlanul befolyásolhatják a téma többi elemének megjelenését. Mindezt manuálisan megpróbálni – csak a dolgokra nézve a saját szemén keresztül – valóban kihívást jelenthet, ezért mindig óriási segítség az algoritmus / automatizálás valamilyen formájának bevezetése a keverékbe..

De mit gondolsz? Látja-e az ilyen eszközök értékét más projektek esetében is??

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