{"id":230081,"date":"2022-11-11T11:11:00","date_gmt":"2022-11-11T08:11:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230081"},"modified":"2022-11-09T20:00:54","modified_gmt":"2022-11-09T17:00:54","slug":"integrazione-continua-incentrata-su-wordpress-con-circleci","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/integrazione-continua-incentrata-su-wordpress-con-circleci\/","title":{"rendered":"Integrazione continua incentrata su WordPress con CircleCI"},"content":{"rendered":"\n<p>Scrivere di integrazione continua o distribuzioni continue mi sembra un po&#8217; divertente dato che l&#8217;ho gi\u00e0 fatto in <a href=\"https:\/\/tommcfarlin.com\/continuous-deployment-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">precedenza<\/a> e dato che so che molti sviluppatori lo usano gi\u00e0 come parte del loro quotidiano.<\/p>\n<p>Ma so anche che ci sono molti hobbisti, principianti e coloro che sono appena agli inizi che sono alla ricerca di modi per assicurarsi che stiano impostando solide pratiche per il loro lavoro.<\/p>\n<p>Per quel che vale, \u00e8 stato solo quando <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ho iniziato a lavorare con alcune persone in pi\u00f9<\/a> che abbiamo iniziato a incorporare un insieme pi\u00f9 ampio di strumenti nel nostro processo di distribuzione.<\/p>\n<p>E questo \u00e8 lo scopo di questo post.<\/p>\n<p>Questo \u00e8:<\/p>\n<ol>\n<li>introdurre l&#8217;intera idea alla base dell&#8217;integrazione continua incentrata su WordPress,<\/li>\n<li>presentando <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI<\/a> ,<\/li>\n<li>preparandoci a parlarne di pi\u00f9.<\/li>\n<\/ol>\n<p>Detto questo, ecco il riassunto di tutto quanto sopra.<\/p>\n<h2>Integrazione continua incentrata su WordPress<\/h2>\n<p>Innanzitutto, qual \u00e8 comunque la grande idea dietro l&#8217;integrazione continua? Quindi la definizione generale <a href=\"https:\/\/en.wikipedia.org\/wiki\/Continuous_integration\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">di integrazione continua \u00e8<\/a> :<\/p>\n<blockquote>\n<p>Nell&#8217;ingegneria del software, l&#8217;integrazione continua (CI) \u00e8 la pratica di unire tutte le copie di lavoro degli sviluppatori in una linea principale condivisa pi\u00f9 volte al giorno.<\/p>\n<\/blockquote>\n<p>A seconda del sistema di controllo del codice sorgente scelto, ci\u00f2 che \u00e8 considerato la tua &quot;linea principale&quot; varier\u00e0. Se stai usando GitHub, \u00e8 probabile che sar\u00e0 il tuo\u00a0 ramo <strong>principale<\/strong> (motivo per cui dovremmo sempre lavorare in rami separati, avere revisioni del codice, e impostare le richieste pull).<\/p>\n<p>Quindi prendi tutto ci\u00f2 che \u00e8 in <strong>master<\/strong> e fallo distribuire sul tuo server di staging o sul tuo server di produzione.<\/p>\n<p>E sebbene ci siano molti strumenti per questo, io e il mio team abbiamo utilizzato CircleCI per alcuni progetti e sono sicuramente un fan (inoltre, hanno appena rilasciato la seconda versione del loro lavoro).<\/p>\n<h3>1 Che cos&#8217;\u00e8 CircleCI?<\/h3>\n<p><a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI<\/a> si definisce semplicemente come:<\/p>\n<blockquote>\n<p>Crea ambienti personalizzati, applica flussi di lavoro per il controllo sulla tua pipeline di build, goditi l&#8217;allocazione flessibile delle risorse e altro ancora.<\/p>\n<\/blockquote>\n<p>A proposito del quale ho sentimenti contrastanti. Voglio dire, \u00e8 tutto vero e ci consente di avere la personalizzazione su una serie di aspetti diversi dei nostri schieramenti, ma in termini di essere meno intimidatori per coloro che hanno appena iniziato, non lo so.<\/p>\n<p>Indipendentemente da ci\u00f2, ho scoperto che pu\u00f2 essere semplice o complesso in base alle esigenze del tuo progetto. E poich\u00e9 si tratta pi\u00f9 di condividere le ragioni, non mi preoccuper\u00f2 di approfondire tutto ci\u00f2 che offre.<\/p>\n<p>Almeno non in questo post.<\/p>\n<h3>2 Come lo usiamo?<\/h3>\n<p>Supponendo che tu abbia gi\u00e0 configurato un progetto GitHub, \u00e8 davvero facile connettere CircleCi al tuo progetto.<\/p>\n<p>Ogni volta che ti <a href=\"https:\/\/circleci.com\/signup\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">iscrivi<\/a>, puoi connetterti con GitHub, Bitbucket o Google (anche se sono un fan di iniziare con GitHub o Bitbucket considerando che hanno i repository per il codice che molti di noi in WordPress, almeno, pi\u00f9 comunemente usano) .<\/p>\n<p>Da l\u00ec, dovrai configurare un <a href=\"https:\/\/en.wikipedia.org\/wiki\/Webhook\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">webhook<\/a> su CircleCI. Ci\u00f2 essenzialmente consentir\u00e0 a CircleCI di eseguire la variet\u00e0 di strumenti che hai impostato e di creare il tuo progetto. Parler\u00f2 di pi\u00f9 di questo tra un momento.<\/p>\n<ul>\n<li>Se la compilazione ha esito positivo, riceverai una di queste notifiche e potrai richiedere una revisione del codice o unire il ramo in <strong>master<\/strong>.<\/li>\n<li>Se la build fallisce, bloccher\u00e0 (e dovrebbe) la possibilit\u00e0 di unire il ramo finch\u00e9 non si ottiene una build riuscita.<\/li>\n<\/ul>\n<p>Detto questo, cosa potrebbero includere gli strumenti che fanno parte di un processo di creazione per un progetto WordPress? Dato che gran parte di un progetto WordPress di solito include PHP e JavaScript, puoi usarne alcuni:<\/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\">Codice PHP Sniffer<\/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>E altro ancora.<\/li>\n<\/ul>\n<p>Se hai configurato GrumPHP correttamente, controller\u00e0 ogni commit che entra nel tuo repository (anche quando \u00e8 un commit locale, ovvero prima di eseguire il push upstream su GitHub).<\/p>\n<p>Pertanto, dovresti sapere se c&#8217;\u00e8 un problema con il tuo codice prima ancora di inviarlo a monte. Una volta completati i controlli locali, sei pronto per inviarlo al tuo repository. CircleCI eseguir\u00e0 quindi le stesse operazioni in base alla tua configurazione nell&#8217;ambiente che hai configurato.<\/p>\n<p>Se tutto va bene, passer\u00e0 e, come accennato, puoi unirlo. In caso contrario, dovrai correggere tutti gli errori segnalati, ripristinarli e inviarli. Di solito, se passa un commit locale, passer\u00e0 un push. Ma non \u00e8 sempre cos\u00ec, quindi non dare per scontato.<\/p>\n<h2>E c&#8217;\u00e8 dell&#8217;altro<\/h2>\n<p>Ovviamente, questo \u00e8 solo scalfire la superficie di ci\u00f2 che l&#8217;integrazione continua pu\u00f2 fare. Onestamente, non so nemmeno se lo direi, invece, si tratta pi\u00f9 di introdurre l&#8217;idea di integrazione continua e dei vantaggi che offre soprattutto quando si lavora con un team.<\/p>\n<p>Anche se ho provato una variet\u00e0 di strumenti diversi, devo dire che sono stato molto soddisfatto di ci\u00f2 che offre CircleCI. Una delle cose migliori di tutte \u00e8 che se scegli di costruire su una scatola Linux, allora \u00e8 gratuito. E questo funziona bene per una piccola squadra che sta cercando di rimanere snella.<\/p>\n<p>Ad ogni modo, c&#8217;\u00e8 altro da coprire su questo, quindi sto cercando di farlo nei post futuri.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c8 stato solo quando ho iniziato a lavorare con alcune persone in pi\u00f9 che abbiamo iniziato a incorporare un insieme pi\u00f9 ampio di strumenti nella nostra integrazione continua incentrata su WordPress.<\/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":[1019,783,720],"tags":[1168],"class_list":["post-230081","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-siti-utili","category-software-open-source","category-sviluppatore","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=230081"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230081\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/165940"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}