Cum să implementați un plugin WordPress de la TravisCI la WordPress.org

Nu toată lumea îi place subversiunea. Dacă utilizați Git pentru a gestiona dezvoltarea pluginului WordPress, menținerea replicii Git și repornirea SVN WordPress.org în sincronizare este obositoare. Din fericire, putem folosi furnizorul de implementare TravisCI pentru a automatiza desfășurarea SVN după teste.

Cerințe preliminare

Aveți nevoie de acestea înainte de a vă deplasa:

  1. Contul GitHub
  2. Contul TravisCI
  3. Pluginul cod sursă
  4. Pluginul WordPress.org SVN repo (obțineți acest lucru după aprobarea revizuirii pluginului.)

Mai întâi împingeți la GitHub

Pentru a folosi TravisCI, trebuie să găzduim depozitul de plugin-uri pe GitHub.

Mai întâi, creați un depozit nou pe GitHub accesând această pagină și completând numele repozitorului.

Apoi, vom comite toate fișierele de plugin în Git și vom împinge în acest depozit GitHub. Nu uitați să înlocuiți adresa URL la distanță cu a dvs..

$ cd / path / to / plugin / directorul $ git init $ git adăuga -A $ git comită -m "primul comite" $ git adaugă la distanță origine https://github.com/TangRufus/tutsplus-dpl-demo.git $ git push -u maestru de origine

Conectarea TravisCI

Conectați-vă magazia GitHub la TravisCI accesând pagina contului dvs. TravisCI și porniți depozitul. Clic Sincronizați contul în colțul din dreapta sus, dacă depozitul nou creat nu apare în listă.

Ești gata. De fiecare dată când împingeți noi comitete sau când cineva face cereri de tragere către GitHub, va declanșa o construire pe TravisCI.

Mai întâi construiți pe TravisCI

TravisCI folosește un fișier YAML numit .travis.yml în rădăcina depozitului dvs. pentru a personaliza clădirile. Aflați mai multe din documentul de configurare pentru a vedea cum puteți controla ciclul de viață al clădirii.

Acesta este un fișier de configurare de bază care instruiește TravisCI să ruleze se bazează pe PHP 7 și 7.1. Din moment ce testarea nu se află în sfera de aplicare a acestui tutorial, am înlocuit comenzile de testare ecou 'Tested'

# .travis.yml limbă: php sudo: false php: - 7.0 - 7.1 script: # Rulați-vă testele aici. - echo "Tested" 

Impuneți acest fișier și împingeți-l la GitHub. TravisCI build-urile vor fi declanșate automat.

$ git adăugați .travis.yml $ git ci -am "Adăugați .travis.yml" $ git push master de origine

Adăugarea configurației furnizorului de implementare

Furnizorii de implementare rulează dacă testele au trecut și condiționările predefinite ( pe secțiune). TravisCI oferă aproape 40 de furnizori oficiali de implementare. Din păcate, niciuna dintre ele nu acceptă depozitele de subversiune ale WordPress.org. Astfel, mi-am făcut propriul furnizor personalizat. Puteți să o găsiți pe GitHub și pe cererea de tragere.

Pentru a le folosi, adăugați aceste linii la sfârșitul paginii .travis.yml.

înainte_deploy: - mkdir build - cp LICENȚĂ construi - cp README.txt build - cp remove-mediu-cross-links.php construi implementa: - provider: wordpress-plugin margine: instalare pe: php: 7.1 etichete: true repo: TangRufus / tutsplus-dpl-demo slug: elimina-mediu-cross-links nume utilizator: tangrufus parola: $ WORDPRESS_ORG_PASSWORD build_dir: build 

Configurație Explicație

before_deploy

before_deploy secțiunea copiază trei fișiere în construi director care trebuie verificat în depozitul de subversiune WordPress.org. În lumea reală, acesta este locul în care doriți să rulați înghiţitură sau mormăit sarcini pentru a pregăti plugin-ul pentru producție. 

Nu copiați fișierele de testare sau fișierele care nu sunt necesare construi ca întreg construi directorul este lansat utilizatorilor și utilizatorii nu au nevoie de fișierele de test.

furnizor și margine

Spunem TravisCI să instaleze furnizorul meu de la add-wordpress-plugin-implementare ramifica https://github.com/TypistTech/dpl. Odată ce cererea de tragere a fost îmbinată, margine parte este inutilă.

pe

pe secțiunea controlează dacă trebuie efectuată o desfășurare. Implementarea este declanșată numai atunci când toate cerințele sunt îndeplinite.

În exemplul de mai sus, vom implementa WordPress.org numai atunci când:

  1. este un PHP 7.1 construi
  2. este o comisie marcată
  3. este declanșată de TangRufus / tutsplus-dpl-demo repo (cererile de furci și tragere nu ar declanșa implementarea)

melc

Plug-in-ul plug-in-ului. 

Dacă adresa URL a pluginului este https://wordpress.org/plugins/my-awesome-plugin/, atunci mi-minunat-plugin este slugul plugin-ului. 

nume de utilizator

Numele dvs. de utilizator al contului WordPress.org cu care ați trimis pluginul pentru aprobare de examinare.

parola

Parola contului WordPress.org. Nu salvați niciodată această parolă în .travis.yml în text simplu!

În exemplul de mai sus, folosim $ WORDPRESS_ORG_PASSWORD mediu, care poate fi setat pe tabloul de bord web TravisCI. Alege Setări din meniul de comandă și faceți clic pe Adăuga în variabile de mediu secțiune. Nu activați niciodată opțiunea "Afișare valoare în jurnal de construcție"!

build_dir

Totul din acest director va fi dedicat depozitului de subversiune WordPress.org, adică va fi inclus în fișierul zip descărcabil. 

Am stabilit asta construi pentru că am copiat fișierele pluginului construi pe parcursul before_deploy.

tagging

Să presupunem că am rezolvat câteva erori și suntem gata să publicăm o nouă versiune la WordPress.org.

Aceste comenzi declanșează modificările la maestru dar nu declanșează o desfășurare:

$ git adăugați -A $ git commit -am "Bug fix" $ git împinge masterul de origine

Numai etichetarea declanșează declanșarea declanșatorului:

$ git tag -a 1.0.17 -m "versiunea bump 1.0.17" $ git push origin master -tags

Rezultate

Reveniți la TravisCI și deschideți PHP 7.1 construi jurnal. Ar trebui să vedeți că implementarea este înregistrată.

Clădire dpl gem local cu sursa tipistTech / dpl și ramură add-wordpress-plugin-deployment Instalarea dependențelor de implementare! Suportul WordPress Plugin este experimental! Pregătirea implementării Găsirea configurației pentru implementarea pluginului WordPress ... Slug: eliminați-mediu-cross-links Utilizator: tangrufus Parola găsită Build Directory: build Active Directory: nu a fost găsit Configurarea valida pentru implementarea pluginului WordPress ... Configurația arată bine Merge la eticheta deloy: 1.0.17 Curățați depozitul de git cu "git stash --all". Dacă aveți nevoie de artefacte de construire pentru implementare, setați "deploy.skip_cleanup: true". Vedeți https://docs.travis-ci.com/user/deployment/#Uploading-Files. / usr / lib / git-core / git-stash: 186: / usr / lib / git-core / git-stash: nu se poate crea /home/travis/build/TangRufus/tutsplus-dpl-demo/.git/logs/ refs / stash: Directory nonexistent Implementarea aplicației Verificarea https://plugins.svn.wordpress.org/remove-medium-cross-links Clearing / tmp / d20170513-3291-1yh7vqo / trunk ... Eliminarea fișierelor șterse din subversiune ... D / tmp / d20170513-3291-1yh7vqo / trunk Îndepărtarea temporară a portbagajului și a activelor (dacă este setat assets_dir) Ștergerea tmp / d20170513-3291-1yh7vqo / trunk Revizuirea revizuită 1656616. Copierea construirii în / tmp / d20170513-3291-1yh7vqo / trunk ... Copierea / tmp / d20170513-3291-1yh7vqo / trunk către /tmp/d20170513-3291-1yh7vqo/tags/1.0.17 ... Adăugarea de fișiere noi la subversiune ... A / tmp / d20170513-3291-1yh7vqo / trunk A / tmp / d20170513-3291-1yh7vqo / trunk / LICENȚA A /tmp/d20170513-3291-1yh7vqo/trunk/README.txt A /tmp/d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php A / tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 A /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/LICENSE A / tmp / d20170513-3291-1y h7vqo / tags / 1.0.17 / README.txt A /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/remove-medium-cross-links.php Angajarea 1.0.17 Adăugarea tmp / d20170513-3291-1yh7vqo / tags /1.0.17 Adăugarea tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / LICENȚĂ Adăugarea tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / README.txt Adăugarea tmp / d20170513-3291-1yh7vqo / tags / 1.0 .17 / remove-medium-cross-links.php Adăugarea tmp / d20170513-3291-1yh7vqo / trunk Adăugarea tmp / d20170513-3291-1yh7vqo / trunk / LICENȚĂ Adăugarea tmp / d20170513-3291-1yh7vqo / trunk / README.txt Adăugarea tmp /d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php Transmiterea datelor despre fișier ... Revizuirea angajată 1656617.

Și pe traseul WordPress.org (https://plugins.trac.wordpress.org/browser/):

caveats

svn commit De două ori

Deoarece TravisCI navează cu o versiune veche subversiune care nu joacă bine cu subdirectoarele, o fac svn commit de două ori.

Primul svn commit elimină totul înăuntru trompă. Al doilea svn commit copiază totul de la build_dir la trompă.

Experimental

Acest furnizor este încă experimental și nu se îmbină cu repo oficialul TravisCI. Puteți urmări feedback-ul TravisCI asupra solicitării sale de tragere.

Utilizarea margine nu îmi îmbină filiala în maestrul din amonte. Există o șansă ca sucursala mea să fie în spatele repo-ului oficial. Când se întâmplă, îmi poți furca sucursala și o poți renunța și apoi să te schimbi sursă în .travis.yml la depozitul dvs. GitHub.

Înfășurarea în sus

Pentru a utiliza acest furnizor de servicii de implementare:

  1. Găzduiți depozitul de plugin-uri pe GitHub.
  2. Conectați GitHub și TravisCI.
  3. Adăugați configurația la .travis.yml.
  4. Apăsați o etichetă.

Sper că toate cele de mai sus vă ajută să implementați pluginurile mai rapid la WordPress.org. 

WordPress are o economie incredibil de activă. Există teme, pluginuri, biblioteci și multe alte produse care vă ajută să vă construiți site-ul și proiectul. Natura open-source a platformei face de asemenea o opțiune excelentă pentru a vă îmbunătăți abilitățile de programare. Indiferent de situație, puteți vedea tot ce avem la dispoziție în piața Envato Marketplace.

Vă mulțumim pentru lectură!

Cod