{"id":229170,"date":"2022-11-11T11:09:00","date_gmt":"2022-11-11T08:09:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229170"},"modified":"2022-11-09T05:48:40","modified_gmt":"2022-11-09T02:48:40","slug":"skupiona-na-wordpressie-ciagla-integracja-z-circleci","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/skupiona-na-wordpressie-ciagla-integracja-z-circleci\/","title":{"rendered":"Skupiona na WordPressie ci\u0105g\u0142a integracja z CircleCI"},"content":{"rendered":"\n<p>Pisanie o ci\u0105g\u0142ej integracji lub ci\u0105g\u0142ych wdro\u017ceniach wydaje mi si\u0119 troch\u0119 zabawne, bior\u0105c pod uwag\u0119, \u017ce robi\u0142em to ju\u017c <a href=\"https:\/\/tommcfarlin.com\/continuous-deployment-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wcze\u015bniej<\/a> i bior\u0105c pod uwag\u0119, \u017ce wiem, \u017ce wielu programist\u00f3w ju\u017c u\u017cywa tego w ramach swojej codziennej pracy.<\/p>\n<p>Ale wiem te\u017c, \u017ce jest wielu hobbyst\u00f3w, pocz\u0105tkuj\u0105cych i tych, kt\u00f3rzy dopiero zaczynaj\u0105, kt\u00f3rzy szukaj\u0105 sposob\u00f3w, aby upewni\u0107 si\u0119, \u017ce tworz\u0105 solidne praktyki do swojej pracy.<\/p>\n<p>Co jest warte, dopiero <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">gdy zacz\u0105\u0142em pracowa\u0107 z kilkoma innymi osobami<\/a>, zacz\u0119li\u015bmy w\u0142\u0105cza\u0107 szerszy zestaw narz\u0119dzi do naszego procesu wdra\u017cania.<\/p>\n<p>I taki jest cel tego postu.<\/p>\n<p>To znaczy:<\/p>\n<ol>\n<li>przedstawi\u0107 ca\u0142\u0105 ide\u0119 ci\u0105g\u0142ej integracji zorientowanej na WordPress,<\/li>\n<li>wprowadzenie <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI<\/a> ,<\/li>\n<li>przygotowuj\u0105c si\u0119 do dalszej rozmowy na ten temat.<\/li>\n<\/ol>\n<p>Maj\u0105c to na uwadze, oto podsumowanie wszystkich powy\u017cszych.<\/p>\n<h2>Ci\u0105g\u0142a integracja zorientowana na WordPress<\/h2>\n<p>Po pierwsze, jaka jest g\u0142\u00f3wna idea ci\u0105g\u0142ej integracji? Tak wi\u0119c og\u00f3lna definicja <a href=\"https:\/\/en.wikipedia.org\/wiki\/Continuous_integration\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ci\u0105g\u0142ej integracji to<\/a> :<\/p>\n<blockquote>\n<p>W in\u017cynierii oprogramowania ci\u0105g\u0142a integracja (CI) to praktyka \u0142\u0105czenia wszystkich kopii roboczych programist\u00f3w ze wsp\u00f3ln\u0105 lini\u0105 g\u0142\u00f3wn\u0105 kilka razy dziennie.<\/p>\n<\/blockquote>\n<p>W zale\u017cno\u015bci od wybranego systemu kontroli \u017ar\u00f3d\u0142a, to, co jest uwa\u017cane za \u201eg\u0142\u00f3wn\u0105 lini\u0119&quot;, b\u0119dzie si\u0119 r\u00f3\u017cni\u0107. Je\u015bli u\u017cywasz GitHub, prawdopodobnie b\u0119dzie to Twoja <strong>g\u0142\u00f3wna<\/strong> ga\u0142\u0105\u017a (dlatego zawsze powinni\u015bmy pracowa\u0107 w osobnych ga\u0142\u0119ziach, przeprowadza\u0107 przegl\u0105dy kodu, i skonfigurowa\u0107 \u017c\u0105dania \u015bci\u0105gni\u0119cia).<\/p>\n<p>Nast\u0119pnie we\u017a to, co jest w <strong>master<\/strong> i wdro\u017c je na swoim serwerze pomostowym lub serwerze produkcyjnym.<\/p>\n<p>I cho\u0107 narz\u0119dzi do tego jest wiele, m\u00f3j zesp\u00f3\u0142 i ja u\u017cywali\u015bmy CircleCI w kilku projektach i zdecydowanie jestem ich fanem (plus, w\u0142a\u015bnie wydali drug\u0105 wersj\u0119 swojej pracy).<\/p>\n<h3>1 Co to jest CircleCI?<\/h3>\n<p><a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI przypina<\/a> si\u0119 po prostu jako:<\/p>\n<blockquote>\n<p>Tw\u00f3rz niestandardowe \u015brodowiska, stosuj przep\u0142ywy pracy, aby kontrolowa\u0107 potok kompilacji, korzystaj z elastycznej alokacji zasob\u00f3w i nie tylko.<\/p>\n<\/blockquote>\n<p>Co do czego mam mieszane uczucia. To znaczy, to wszystko prawda i pozwala nam na dostosowanie wielu r\u00f3\u017cnych aspekt\u00f3w naszych wdro\u017ce\u0144, ale pod wzgl\u0119dem bycia mniej zastraszaj\u0105cym dla tych, kt\u00f3rzy dopiero zaczynaj\u0105, nie wiem.<\/p>\n<p>Niezale\u017cnie od tego, odkry\u0142em, \u017ce mo\u017ce to by\u0107 tak proste lub tak z\u0142o\u017cone, jak wymaga tw\u00f3j projekt. A poniewa\u017c chodzi bardziej o dzielenie si\u0119 powodami, nie b\u0119d\u0119 zawraca\u0142 sobie g\u0142owy wszystkim, co oferuje.<\/p>\n<p>Przynajmniej nie w tym po\u015bcie.<\/p>\n<h3>2 Jak z niego korzystamy?<\/h3>\n<p>Zak\u0142adaj\u0105c, \u017ce masz ju\u017c skonfigurowany projekt GitHub, po\u0142\u0105czenie CircleCi z projektem jest naprawd\u0119 \u0142atwe.<\/p>\n<p>Za ka\u017cdym razem, gdy si\u0119 <a href=\"https:\/\/circleci.com\/signup\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">zarejestrujesz<\/a>, mo\u017cesz po\u0142\u0105czy\u0107 si\u0119 z GitHub, Bitbucket lub Google (chocia\u017c jestem fanem rozpoczynania od GitHub lub Bitbucket, poniewa\u017c maj\u0105 repozytoria kodu, z kt\u00f3rych przynajmniej wi\u0119kszo\u015b\u0107 z nas korzysta w WordPressie) .<\/p>\n<p>Stamt\u0105d musisz skonfigurowa\u0107 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Webhook\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">webhooka<\/a> do CircleCI. Zasadniczo pozwoli to CircleCI uruchomi\u0107 r\u00f3\u017cne narz\u0119dzia, kt\u00f3re masz skonfigurowane i zbudowa\u0107 sw\u00f3j projekt. Za chwil\u0119 powiem o tym wi\u0119cej.<\/p>\n<ul>\n<li>Je\u015bli kompilacja si\u0119 powiedzie, otrzymasz jedno takie powiadomienie i mo\u017cesz poprosi\u0107 o przegl\u0105d kodu lub scali\u0107 branch z <strong>master<\/strong>.<\/li>\n<li>Je\u015bli kompilacja si\u0119 nie powiedzie, (i powinna) zablokowa\u0107 mo\u017cliwo\u015b\u0107 scalenia ga\u0142\u0119zi, dop\u00f3ki nie zostanie pomy\u015blnie zbudowana.<\/li>\n<\/ul>\n<p>Maj\u0105c to na uwadze, co mog\u0105 zawiera\u0107 narz\u0119dzia, kt\u00f3re s\u0105 cz\u0119\u015bci\u0105 procesu kompilacji projektu WordPress? Bior\u0105c pod uwag\u0119, \u017ce wi\u0119kszo\u015b\u0107 projekt\u00f3w WordPress zwykle zawiera PHP i JavaScript, mo\u017cesz u\u017cy\u0107 kilku z nich:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GrumPHP<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a><\/li>\n<li><a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a><\/li>\n<li><a href=\"https:\/\/eslint.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ESLint<\/a><\/li>\n<li>I wiele wi\u0119cej.<\/li>\n<\/ul>\n<p>Je\u015bli poprawnie skonfigurowa\u0142e\u015b GrumPHP, b\u0119dzie on obserwowa\u0142 ka\u017cde zatwierdzenie, kt\u00f3re trafia do twojego repozytorium (nawet je\u015bli jest to zatwierdzenie lokalne \u2013 to znaczy, zanim wypchniesz w g\u00f3r\u0119 do GitHub).<\/p>\n<p>Dlatego powiniene\u015b wiedzie\u0107, czy jest jaki\u015b problem z twoim kodem, zanim jeszcze go wypchniesz. Po zako\u0144czeniu sprawdzania lokalnego mo\u017cesz przes\u0142a\u0107 go do swojego repozytorium. CircleCI wykona te same operacje w oparciu o twoj\u0105 konfiguracj\u0119 w skonfigurowanym \u015brodowisku.<\/p>\n<p>Je\u015bli wszystko p\u00f3jdzie dobrze, to minie i, jak wspomniano, mo\u017cesz je scali\u0107. W przeciwnym razie b\u0119dziesz musia\u0142 naprawi\u0107 wszelkie zg\u0142aszane przez niego b\u0142\u0119dy, ponownie je zatwierdzi\u0107 i wypchn\u0105\u0107. Zwykle, je\u015bli przejdzie lokalne zatwierdzenie, przeka\u017ce push. Ale nie zawsze tak jest, wi\u0119c nie zak\u0142adaj tak du\u017co.<\/p>\n<h2>Wi\u0119cej w przysz\u0142o\u015bci<\/h2>\n<p>Oczywi\u015bcie to tylko zarysowanie powierzchni tego, co mo\u017ce zdzia\u0142a\u0107 ci\u0105g\u0142a integracja. Szczerze m\u00f3wi\u0105c, nawet nie wiem, czy tak powiem \u2013 zamiast tego bardziej chodzi o wprowadzenie idei ci\u0105g\u0142ej integracji i korzy\u015bci, jakie daje, zw\u0142aszcza w pracy z zespo\u0142em.<\/p>\n<p>Chocia\u017c wypr\u00f3bowa\u0142em wiele r\u00f3\u017cnych narz\u0119dzi, musz\u0119 powiedzie\u0107, \u017ce jestem najbardziej zadowolony z tego, co oferuje CircleCI. Jedn\u0105 z najlepszych rzeczy jest to, \u017ce je\u015bli zdecydujesz si\u0119 budowa\u0107 na Linuksie, to korzystanie z niego jest darmowe. A to dobrze sprawdza si\u0119 w ma\u0142ym zespole, kt\u00f3ry chce zachowa\u0107 szczup\u0142\u0105 sylwetk\u0119.<\/p>\n<p>W ka\u017cdym razie jest o tym wi\u0119cej do om\u00f3wienia, wi\u0119c zamierzam to zrobi\u0107 w przysz\u0142ych postach.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dopiero gdy zacz\u0105\u0142em pracowa\u0107 z kilkoma innymi osobami, zacz\u0119li\u015bmy w\u0142\u0105cza\u0107 szerszy zestaw narz\u0119dzi do naszej ci\u0105g\u0142ej integracji opartej na WordPressie.<\/p>\n","protected":false},"author":1,"featured_media":165940,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,784,1020],"tags":[1169],"class_list":["post-229170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-oprogramowanie-open-source","category-przydatne-strony","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=229170"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229170\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/165940"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=229170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=229170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=229170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}