{"id":229846,"date":"2022-11-11T10:50:00","date_gmt":"2022-11-11T07:50:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229846"},"modified":"2022-11-09T16:38:09","modified_gmt":"2022-11-09T13:38:09","slug":"wordpress-painotteinen-jatkuva-integrointi-circleci-n-kanssa","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/wordpress-painotteinen-jatkuva-integrointi-circleci-n-kanssa\/","title":{"rendered":"WordPress-painotteinen jatkuva integrointi CircleCI:n kanssa"},"content":{"rendered":"\n<p>Jatkuvasta integroinnista tai jatkuvasta k\u00e4ytt\u00f6\u00f6notosta kirjoittaminen tuntuu minusta hieman hassulta, koska olen tehnyt t\u00e4m\u00e4n <a href=\"https:\/\/tommcfarlin.com\/continuous-deployment-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aiemmin<\/a> ja tied\u00e4n, ett\u00e4 monet kehitt\u00e4j\u00e4t k\u00e4ytt\u00e4v\u00e4t t\u00e4t\u00e4 jo osana p\u00e4ivitt\u00e4ist\u00e4 toimintaansa.<\/p>\n<p>Mutta tied\u00e4n my\u00f6s, ett\u00e4 on paljon harrastajia, aloittelijoita ja vasta aloittelevia, jotka etsiv\u00e4t tapoja varmistaa, ett\u00e4 he perustavat vankat k\u00e4yt\u00e4nn\u00f6t ty\u00f6h\u00f6ns\u00e4.<\/p>\n<p>Se oli sen arvoista, mutta vasta <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">kun aloin ty\u00f6skennell\u00e4 muutaman ihmisen kanssa<\/a>, aloimme sis\u00e4llytt\u00e4\u00e4 laajempia ty\u00f6kaluja k\u00e4ytt\u00f6\u00f6nottoprosessiimme.<\/p>\n<p>Ja se on t\u00e4m\u00e4n postauksen tarkoitus.<\/p>\n<p>Tuo on:<\/p>\n<ol>\n<li>esitell\u00e4 koko idea WordPress-painotteisen jatkuvan integroinnin takana,<\/li>\n<li>esittelyss\u00e4 <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI<\/a> ,<\/li>\n<li>valmistaudu keskustelemaan siit\u00e4 lis\u00e4\u00e4.<\/li>\n<\/ol>\n<p>N\u00e4in sanottuna t\u00e4ss\u00e4 on kaikki edell\u00e4 mainitut asiat.<\/p>\n<h2>WordPress-painotteinen jatkuva integrointi<\/h2>\n<p>Ensinn\u00e4kin, mik\u00e4 on jatkuvan integraation ideana? <a href=\"https:\/\/en.wikipedia.org\/wiki\/Continuous_integration\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Jatkuvan integraation<\/a> yleinen m\u00e4\u00e4ritelm\u00e4 on siis :<\/p>\n<blockquote>\n<p>Ohjelmistosuunnittelussa jatkuva integrointi (CI) on k\u00e4yt\u00e4nt\u00f6\u00e4 yhdist\u00e4\u00e4 kaikki kehitt\u00e4j\u00e4n ty\u00f6kopiot jaetulle p\u00e4\u00e4linjalle useita kertoja p\u00e4iv\u00e4ss\u00e4.<\/p>\n<\/blockquote>\n<p>Riippuen valitusta l\u00e4hteen ohjausj\u00e4rjestelm\u00e4st\u00e4, se, mit\u00e4 pidet\u00e4\u00e4n &quot;p\u00e4\u00e4linjaasi&quot;, vaihtelee. Jos k\u00e4yt\u00e4t GitHubia, se tulee todenn\u00e4k\u00f6isesti olemaan <strong>p\u00e4\u00e4haara<\/strong> (siksi meid\u00e4n tulee aina ty\u00f6skennell\u00e4 erillisiss\u00e4 haaroissa, tarkistaa koodit, ja m\u00e4\u00e4rit\u00e4 vetopyynn\u00f6t).<\/p>\n<p>Ota sitten kaikki <strong>masterissa<\/strong> oleva ja ota se k\u00e4ytt\u00f6\u00f6n v\u00e4lityspalvelimellasi tai tuotantopalvelimellasi.<\/p>\n<p>Ja vaikka siihen on olemassa monia ty\u00f6kaluja, olemme tiimini kanssa k\u00e4ytt\u00e4neet CircleCI:t\u00e4 muutamissa projekteissa ja olen ehdottomasti fani (ja he julkaisivat juuri toisen version ty\u00f6st\u00e4\u00e4n).<\/p>\n<h3>1 Mik\u00e4 CircleCI on?<\/h3>\n<p><a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI<\/a> kiinnitt\u00e4\u00e4 itsens\u00e4 yksinkertaisesti seuraavasti:<\/p>\n<blockquote>\n<p>Luo mukautettuja ymp\u00e4rist\u00f6j\u00e4, k\u00e4yt\u00e4 ty\u00f6nkulkuja rakennusprosessisi hallintaan, nauti joustavasta resurssien allokoinnista ja paljon muuta.<\/p>\n<\/blockquote>\n<p>josta minulla on ristiriitaisia \u200b\u200btunteita. Tarkoitan, ett\u00e4 kaikki on totta, ja se antaa meille mahdollisuuden r\u00e4\u00e4t\u00e4l\u00f6id\u00e4 k\u00e4ytt\u00f6\u00f6noton eri puolia, mutta en tied\u00e4, onko se v\u00e4hemm\u00e4n pelottava vasta aloittaville.<\/p>\n<p>Siit\u00e4 huolimatta olen huomannut, ett\u00e4 se voi olla niin yksinkertainen tai monimutkainen kuin projektisi tarvitsee. Ja koska t\u00e4ss\u00e4 on enemm\u00e4nkin kyse syiden jakamisesta, en vaivaudu perehtym\u00e4\u00e4n kaikkiin sen tarjontaan.<\/p>\n<p>Ei ainakaan t\u00e4ss\u00e4 postauksessa.<\/p>\n<h3>2 Kuinka k\u00e4yt\u00e4mme sit\u00e4?<\/h3>\n<p>Olettaen, ett\u00e4 sinulla on jo GitHub-projekti asennettuna, CircleCi on todella helppo yhdist\u00e4\u00e4 projektiisi.<\/p>\n<p>Aina kun <a href=\"https:\/\/circleci.com\/signup\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">rekister\u00f6idyt<\/a>, voit muodostaa yhteyden GitHubiin, Bitbucketiin tai Googleen (vaikkakin olen fani aloittaa joko GitHubilla tai Bitbucketilla, koska niill\u00e4 on koodivarastot, joita monet meist\u00e4 ainakin WordPressiss\u00e4 useimmiten k\u00e4ytt\u00e4v\u00e4t) .<\/p>\n<p>Sielt\u00e4 sinun on m\u00e4\u00e4ritett\u00e4v\u00e4 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Webhook\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Webhook<\/a> CircleCI:lle. T\u00e4m\u00e4 k\u00e4yt\u00e4nn\u00f6ss\u00e4 saa CircleCI:n k\u00e4ym\u00e4\u00e4n l\u00e4pi erilaisia \u200b\u200bm\u00e4\u00e4ritt\u00e4mi\u00e4si ty\u00f6kaluja ja rakentamaan projektisi. Puhun t\u00e4st\u00e4 lis\u00e4\u00e4 hetken kuluttua.<\/p>\n<ul>\n<li>Jos koontiversio onnistuu, saat yhden t\u00e4llaisen ilmoituksen ja voit pyyt\u00e4\u00e4 koodin tarkistusta tai yhdist\u00e4\u00e4 haaran <strong>masteriin<\/strong>.<\/li>\n<li>Jos k\u00e4\u00e4nn\u00f6s ep\u00e4onnistuu, se est\u00e4\u00e4 (ja sen pit\u00e4isi) est\u00e4\u00e4 haaran yhdist\u00e4misen, kunnes koonti on onnistunut.<\/li>\n<\/ul>\n<p>Mit\u00e4 WordPress-projektin rakennusprosessiin kuuluvia ty\u00f6kaluja saattaisi olla? Koska suuri osa WordPress-projekteista sis\u00e4lt\u00e4\u00e4 yleens\u00e4 PHP:n ja JavaScriptin, voit k\u00e4ytt\u00e4\u00e4 muutamia n\u00e4ist\u00e4:<\/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>Ja paljon enemm\u00e4n.<\/li>\n<\/ul>\n<p>Jos olet m\u00e4\u00e4ritt\u00e4nyt GrumPHP:n oikein, se tarkkailee jokaista arkistoon menev\u00e4\u00e4 toimitusta (vaikka se olisi paikallinen toimitus \u2013 eli ennen kuin siirryt GitHubiin).<\/p>\n<p>Siksi sinun pit\u00e4isi tiet\u00e4\u00e4, onko koodissasi ongelma, ennen kuin edes ty\u00f6nn\u00e4t sen yl\u00e4virtaan. Kun paikalliset tarkistukset on suoritettu, olet valmis ty\u00f6nt\u00e4m\u00e4\u00e4n sen arkistoon. CircleCI suorittaa sitten samat toiminnot m\u00e4\u00e4ritt\u00e4m\u00e4si ymp\u00e4rist\u00f6n perusteella.<\/p>\n<p>Jos kaikki menee hyvin, se menee ohi ja, kuten mainittiin, voit yhdist\u00e4\u00e4 sen. Muussa tapauksessa sinun on korjattava sen ilmoittamat virheet, sitouduttava uudelleen ja ty\u00f6nnett\u00e4v\u00e4. Yleens\u00e4, jos se l\u00e4p\u00e4isee paikallisen sitoumuksen, se l\u00e4p\u00e4isee push. Mutta n\u00e4in ei aina ole, joten \u00e4l\u00e4 oleta niin paljon.<\/p>\n<h2>Lis\u00e4\u00e4 tulossa<\/h2>\n<p>Ilmeisesti t\u00e4m\u00e4 on vain pinnan raapimista siit\u00e4, mit\u00e4 jatkuva integraatio voi tehd\u00e4. Rehellisesti sanottuna en edes tied\u00e4 sanoisinko niin \u2013 pikemminkin on kyse jatkuvan integraation ja sen tuomien etujen esittelyst\u00e4 erityisesti tiimity\u00f6skentelyss\u00e4.<\/p>\n<p>Vaikka olen kokeillut useita erilaisia \u200b\u200bty\u00f6kaluja, minun on sanottava, ett\u00e4 olen ollut eritt\u00e4in tyytyv\u00e4inen CircleCI:n tarjoamiin palveluihin. Yksi parhaista asioista on, ett\u00e4 jos p\u00e4\u00e4t\u00e4t rakentaa Linux-laatikon p\u00e4\u00e4lle, sen k\u00e4ytt\u00f6 on ilmaista. Ja se toimii hyvin pienelle tiimille, joka haluaa pysy\u00e4 laihana.<\/p>\n<p>Joka tapauksessa, t\u00e4ss\u00e4 on enemm\u00e4n katettavaa, joten aion tehd\u00e4 sen tulevissa viesteiss\u00e4.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vasta kun aloin ty\u00f6skennell\u00e4 muutaman muun ihmisen kanssa, aloimme sis\u00e4llytt\u00e4\u00e4 laajempia ty\u00f6kaluja WordPress-painotteiseen jatkuvaan integrointiimme.<\/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":[782,1018,719],"tags":[1166],"class_list":["post-229846","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-avoimen-laehdekoodin-ohjelmisto","category-hyodyllisia-sivustoja","category-kehittaejae","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=229846"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/229846\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/165940"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=229846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=229846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=229846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}