{"id":229091,"date":"2022-11-11T11:12:00","date_gmt":"2022-11-11T08:12:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229091"},"modified":"2022-11-09T05:29:52","modified_gmt":"2022-11-09T02:29:52","slug":"wordpress-fokuserad-kontinuerlig-integration-med-circleci","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/wordpress-fokuserad-kontinuerlig-integration-med-circleci\/","title":{"rendered":"WordPress-fokuserad kontinuerlig integration med CircleCI"},"content":{"rendered":"\n<p>Att skriva om kontinuerlig integration eller kontinuerliga distributioner verkar lite lustigt f\u00f6r mig med tanke p\u00e5 att jag har gjort det h\u00e4r <a href=\"https:\/\/tommcfarlin.com\/continuous-deployment-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">f\u00f6rut<\/a> och med tanke p\u00e5 att jag vet att m\u00e5nga utvecklare redan anv\u00e4nder detta som en del av sin vardag.<\/p>\n<p>Men jag vet ocks\u00e5 att det finns m\u00e5nga hobbyister, nyb\u00f6rjare och de som precis har b\u00f6rjat som letar efter s\u00e4tt att se till att de s\u00e4tter upp solida metoder f\u00f6r sitt arbete.<\/p>\n<p>F\u00f6r vad det \u00e4r v\u00e4rt, det var inte f\u00f6rr\u00e4n <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jag b\u00f6rjade arbeta med n\u00e5gra fler personer<\/a> som vi b\u00f6rjade inf\u00f6rliva en bredare upps\u00e4ttning verktyg i v\u00e5r implementeringsprocess.<\/p>\n<p>Och det \u00e4r syftet med detta inl\u00e4gg.<\/p>\n<p>Det \u00e4r:<\/p>\n<ol>\n<li>introducera hela id\u00e9n bakom WordPress-fokuserad kontinuerlig integration,<\/li>\n<li>introducerar <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI<\/a> ,<\/li>\n<li>redo att prata mer om det.<\/li>\n<\/ol>\n<p>Med det sagt, h\u00e4r \u00e4r genomg\u00e5ngen av allt ovanst\u00e5ende.<\/p>\n<h2>WordPress-fokuserad kontinuerlig integration<\/h2>\n<p>F\u00f6r det f\u00f6rsta, vad \u00e4r egentligen den stora id\u00e9n bakom kontinuerlig integration? S\u00e5 den allm\u00e4nna definitionen <a href=\"https:\/\/en.wikipedia.org\/wiki\/Continuous_integration\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">av kontinuerlig integration \u00e4r<\/a> :<\/p>\n<blockquote>\n<p>Inom mjukvaruteknik \u00e4r kontinuerlig integration (CI) metoden att sl\u00e5 samman alla utvecklare arbetskopior till en delad huvudlinje flera g\u00e5nger om dagen.<\/p>\n<\/blockquote>\n<p>Beroende p\u00e5 vilket k\u00e4llkontrollsystem du v\u00e4ljer kommer vad som anses vara din &quot;huvudlinje&quot; att variera. Om du anv\u00e4nder GitHub kommer det sannolikt att vara din <strong>huvudgren<\/strong> (vilket \u00e4r anledningen till att vi alltid b\u00f6r arbeta i separata grenar, ha kodgranskning, och st\u00e4ll in pull-f\u00f6rfr\u00e5gningar).<\/p>\n<p>Ta sedan det som finns i <strong>mastern<\/strong> och f\u00e5 det distribuerat till din mellanlagringsserver eller din produktionsserver.<\/p>\n<p>Och \u00e4ven om det finns m\u00e5nga verktyg f\u00f6r det, har mitt team och jag anv\u00e4nt CircleCI f\u00f6r n\u00e5gra projekt och jag \u00e4r definitivt ett fan (pluss att de precis sl\u00e4ppt den andra versionen av sitt arbete).<\/p>\n<h3>1 Vad \u00e4r CircleCI?<\/h3>\n<p><a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CircleCI<\/a> stiftar sig sj\u00e4lv enkelt som:<\/p>\n<blockquote>\n<p>Skapa anpassade milj\u00f6er, till\u00e4mpa arbetsfl\u00f6den f\u00f6r kontroll \u00f6ver din byggpipeline, njut av flexibel resursallokering och mer.<\/p>\n<\/blockquote>\n<p>som jag har blandade k\u00e4nslor f\u00f6r. Jag menar, allt \u00e4r sant och det till\u00e5ter oss att ha anpassning \u00f6ver ett antal olika aspekter av v\u00e5ra implementeringar, men n\u00e4r det g\u00e4ller att vara mindre skr\u00e4mmande f\u00f6r dem som precis har b\u00f6rjat, jag vet inte.<\/p>\n<p>Oavsett vilket har jag funnit att det kan vara s\u00e5 enkelt eller s\u00e5 komplext som ditt projekt beh\u00f6ver. Och eftersom det h\u00e4r handlar mer om att dela med mig av orsakerna till det, t\u00e4nker jag inte g\u00e5 in p\u00e5 allt det erbjuder.<\/p>\n<p>\u00c5tminstone inte i detta inl\u00e4gg.<\/p>\n<h3>2 Hur anv\u00e4nder vi det?<\/h3>\n<p>F\u00f6rutsatt att du redan har ett GitHub-projekt konfigurerat, \u00e4r det v\u00e4ldigt enkelt att ansluta CircleCi till ditt projekt.<\/p>\n<p>N\u00e4r du <a href=\"https:\/\/circleci.com\/signup\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">registrerar<\/a> dig kan du ansluta till GitHub, Bitbucket eller Google (\u00e4ven om jag \u00e4r ett fan av att b\u00f6rja antingen med GitHub eller Bitbucket med tanke p\u00e5 att de har lagringsplatserna f\u00f6r kod som \u00e5tminstone m\u00e5nga av oss i WordPress oftast anv\u00e4nder) .<\/p>\n<p>D\u00e4rifr\u00e5n m\u00e5ste du konfigurera en <a href=\"https:\/\/en.wikipedia.org\/wiki\/Webhook\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">webhook<\/a> till CircleCI. Detta kommer i huvudsak att f\u00e5 CircleCI att k\u00f6ra igenom de olika verktyg som du har konfigurerat och f\u00f6r att bygga ditt projekt. Jag ska prata mer om detta om en stund.<\/p>\n<ul>\n<li>Om bygget lyckas f\u00e5r du ett s\u00e5dant meddelande och du kan beg\u00e4ra en kodgranskning eller sl\u00e5 samman grenen till <strong>master<\/strong>.<\/li>\n<li>Om bygget misslyckas, kommer (och b\u00f6r) det blockera m\u00f6jligheten att sl\u00e5 samman grenen tills det finns ett framg\u00e5ngsrikt bygge.<\/li>\n<\/ul>\n<p>Med det sagt, vad kan verktygen inkludera som \u00e4r en del av en byggprocess f\u00f6r ett WordPress-projekt? Med tanke p\u00e5 att mycket av ett WordPress-projekt vanligtvis inkluderar PHP och JavaScript, kan du anv\u00e4nda n\u00e5gra av dessa:<\/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>Och mycket mer.<\/li>\n<\/ul>\n<p>Om du har konfigurerat GrumPHP korrekt kommer den att titta p\u00e5 varje commit som g\u00e5r in i ditt arkiv (\u00e4ven n\u00e4r det \u00e4r en lokal commit \u2013 det vill s\u00e4ga innan du trycker uppstr\u00f6ms till GitHub).<\/p>\n<p>D\u00e4rf\u00f6r b\u00f6r du veta om det finns ett problem med din kod innan du ens driver den uppstr\u00f6ms. N\u00e4r de lokala kontrollerna har slutf\u00f6rts \u00e4r du redo att skicka den till ditt f\u00f6rr\u00e5d. CircleCI kommer sedan att utf\u00f6ra samma operationer baserat p\u00e5 din konfiguration i den milj\u00f6 du har konfigurerat.<\/p>\n<p>Om allt g\u00e5r bra s\u00e5 g\u00e5r det \u00f6ver och du kan som sagt sl\u00e5 ihop det. Annars m\u00e5ste du \u00e5tg\u00e4rda de fel som rapporteras, \u00e5teruppta och pusha. Vanligtvis, om den klarar en lokal commit, kommer den att passera en push. Men det \u00e4r inte alltid fallet s\u00e5 anta inte s\u00e5 mycket.<\/p>\n<h2>Det kommer mera<\/h2>\n<p>Uppenbarligen \u00e4r detta bara att skrapa p\u00e5 ytan av vad kontinuerlig integration kan g\u00f6ra. \u00c4rligt talat, jag vet inte ens om jag skulle s\u00e4ga det \u2013 ist\u00e4llet handlar det mer om att introducera id\u00e9n om kontinuerlig integration och de f\u00f6rdelar det ger, s\u00e4rskilt n\u00e4r man arbetar med ett team.<\/p>\n<p>\u00c4ven om jag har provat en m\u00e4ngd olika verktyg, m\u00e5ste jag s\u00e4ga att jag har varit mest n\u00f6jd med vad CircleCI erbjuder. En av de saker som \u00e4r b\u00e4st av allt \u00e4r att om du v\u00e4ljer att bygga p\u00e5 en Linux-box s\u00e5 \u00e4r den gratis att anv\u00e4nda. Och det fungerar bra f\u00f6r ett litet team som vill h\u00e5lla sig smalt.<\/p>\n<p>Hur som helst, det finns mer att ta upp ang\u00e5ende detta s\u00e5 jag ser fram emot att g\u00f6ra det i framtida inl\u00e4gg.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Det var inte f\u00f6rr\u00e4n jag b\u00f6rjade arbeta med n\u00e5gra fler personer som vi b\u00f6rjade inf\u00f6rliva en bredare upps\u00e4ttning verktyg i v\u00e5r WordPress-fokuserade kontinuerliga integration.<\/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":[1022,787,724],"tags":[1173],"class_list":["post-229091","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-anvandbara-webbplatser","category-programvara-med-oeppen-kaellkod","category-utvecklaren","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=229091"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/229091\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/165940"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=229091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=229091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=229091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}