Slik distribuerer du en WordPress-plugin fra TravisCI til WordPress.org

Ikke alle liker subversion. Hvis du bruker Git til å administrere WordPress plugin-utvikling, er det kjedelig å holde Git repo og WordPress.org SVN repo i synkronisering. Heldigvis kan vi bruke TravisCI distribusjon leverandør for å automatisere SVN distribusjon etter tester.

Forutsetninger

Du trenger disse før du går videre:

  1. GitHub konto
  2. TravisCI-konto
  3. Plugin kildekoden
  4. WordPress.org plugin SVN repo (Du får dette etter godkjenning av plugin-gjennomgang.)

Først trykk til GitHub

For å kunne bruke TravisCI må vi være vert for plugin-depotet på GitHub.

Først oppretter du et nytt lager på GitHub ved å gå til denne siden og fylle ut depotnavnet.

Deretter skal vi forplikte alle plugin-filer til Git og skyve den til dette GitHub-depotet. Husk å erstatte den eksterne nettadressen med din.

$ cd / bane / til / plugin / katalog $ git init $ git add -A $ git commit -m "første commit" $ git ekstern legg til opprinnelse https://github.com/TangRufus/tutsplus-dpl-demo.git $ git push -u origin master

Koble til TravisCI

Koble GitHub-depotet ditt med TravisCI ved å gå til TravisCI-kontosiden din og slå på depotet ditt. Klikk Synkroniser konto øverst til høyre hvis det nylig opprettede arkivet ikke vises i listen.

Du er klar. Hver gang du presser på nytt, eller noen gjør trekkforespørsler til GitHub, vil det utløse en konstruksjon på TravisCI.

Først Bygg på TravisCI

TravisCI bruker en YAML-fil kalt .travis.yml i roten av depotet ditt for å tilpasse byggene. Lær mer fra bygg tilpassingsdokumentet for å se hvordan du kan kontrollere bygg livssyklusen.

Dette er en grunnleggende konfigurasjonsfil som instruerer TravisCI til å kjøre bygger på PHP 7.0 og 7.1. Siden testing er utenfor omfanget av denne opplæringen, erstattet jeg de faktiske testkommandoene med ekko "testet"

# .travis.yml språk: php sudo: false php: - 7.0 - 7.1 script: # Kjør testene dine her. - ekko 'testet' 

Forbind denne filen og trykk den til GitHub. TravisCI bygger vil bli utløst automatisk.

$ git add .travis.yml $ git ci -am "Legg til .travis.yml" $ git push opphavs master

Legge til distribusjonsleverandørkonfigurasjon

Distribusjon tilbydere kjører hvis testene passerte og forhåndsdefinerte betingelser (the seksjonen) er oppfylt. TravisCI tilbyr nesten 40 offisielle distribusjonsleverandører. Dessverre, ingen av dem støtter WordPress.org subversion repositories. Dermed laget jeg min egen tilpassede leverandør. Du kan finne den på GitHub og dens trekkforespørsel.

For å bruke det, legg til disse linjene til slutten av .travis.yml.

før_deploy: - mkdir build - cp LICENSE build - cp README.txt bygge - cp fjerne-medium-cross-links.php bygge distribuere: - leverandør: wordpress-plugin edge: kilde: TypistTech / dpl gren: add-wordpress-plugin- distribusjon på: php: 7.1 tagger: true repo: TangRufus / tutsplus-dpl-demo slug: fjern-medium-cross-links brukernavn: tangrufus passord: $ WORDPRESS_ORG_PASSWORD build_dir: build 

Konfigurasjonsforklaring

before_deploy

De before_deploy seksjonen kopierer tre filer til bygge katalog som skal sjekkes inn i WordPress.org subversion repository. I den virkelige verden er dette stedet du vil kjøre gulp eller grynte Oppgaver for å klargjøre produksjons-klar plugin. 

Ikke kopier testfiler eller unødvendige filer til bygge som helhet bygge katalogen er utgitt til brukere, og brukere trenger ikke testfiler.

forsørger og kant

Vi forteller TravisCI å installere leverandøren fra add-wordpress-plugin-distribusjon gren https://github.com/TypistTech/dpl. Når trekkforespørselen er slått sammen, vil kant en del er unødvendig.

De delen kontrollerer om en distribusjon skal utføres. Distribusjon utløses bare når alle krav er oppfylt.

I eksempelet ovenfor distribuerer vi bare til WordPress.org når:

  1. det er et PHP 7.1 bygge
  2. det er et merket commit
  3. det utløses av TangRufus / tutsplus-dpl-demo repo (gaffel- og trekkforespørsler vil ikke utløse distribusjon)

slug

Pluggen er slug. 

Hvis din plugin-URL er https://wordpress.org/plugins/my-awesome-plugin/, da my-awesome-plugin er pluginets slug. 

brukernavn

Ditt WordPress.org-konto brukernavn som du sendte inn plugin for gjennomgang godkjenning.

passord

Passordet til WordPress.org-kontoen. Lag aldri dette passordet i .travis.yml i ren tekst!

I eksemplet ovenfor bruker vi $ WORDPRESS_ORG_PASSWORD miljøvariabel, som kan settes på TravisCI web dashboard. Velge innstillinger fra cog-menyen, og klikk på Legg til i Miljøvariabler seksjon. Ikke aktiver "Display value in build log" -alternativet!

build_dir

Alt i denne katalogen vil være forpliktet til WordPress.org-subversion-depotet, dvs. vil bli inkludert i den nedlastbare zip-filen. 

Vi satte dette til bygge fordi vi har kopiert plugin-filer til bygge under before_deploy.

tagging

Anta at vi har løst noen feil og er klare til å publisere en ny versjon til WordPress.org.

Disse kommandoene forplikter endringene til herre gren, men ikke utløse en distribusjon:

$ git add -A $ git commit -am "Bug fix" $ git push opphavsmester

Kun merket forplikter utløsers distribusjon:

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

resultater

Gå tilbake til TravisCI og åpne PHP 7.1 bygge logg. Du bør se en distribusjon er logget.

Bygg dpl perle lokalt med kilde TypistTech / dpl og gren add-wordpress-plugin-distribusjon Installere distribuere avhengigheter! WordPress Plugin-støtte er eksperimentell! Forberedelse av implementering Finne konfigurasjon for implementering av WordPress-plugin ... Slug: fjern-medium-kryss-linker Brukernavn: tangrufus Passord funnet Bygg Directory: build Asset Directory: ikke funnet Validating konfigurasjon for WordPress plugin distribusjon ... Konfigurasjon ser bra ut Gode til deloy tag: 1.0.17 Rengjøring av git repository med 'git stash --all'. Hvis du trenger bygningsartefakter for distribusjon, sett 'deploy.skip_cleanup: true'. Se https://docs.travis-ci.com/user/deployment/#Uploading-Files. / usr / lib / git-core / git-stash: 186: / usr / lib / git-core / git-stash: kan ikke opprette /home/travis/build/TangRufus/tutsplus-dpl-demo/.git/logs/ refs / stash: Directory ikke-eksisterende Utplassering av applikasjon Sjekk ut https://plugins.svn.wordpress.org/remove-medium-cross-links Clearing / tmp / d20170513-3291-1yh7vqo / trunk ... Fjerning av slettede filer fra subversion ... D / tmp / d20170513-3291-1yh7vqo / trunk Midlertidig fjerning av trunk og eiendeler (hvis assets_dir er satt) Slette tmp / d20170513-3291-1yh7vqo / trunk Forpliktet revisjon 1656616. Kopiering bygg til / tmp / d20170513-3291-1yh7vqo / trunk ... Kopiering / tmp / d20170513-3291-1yh7vqo / trunk to /tmp/d20170513-3291-1yh7vqo/tags/1.0.17... Legge til nye filer til subversion ... A / tmp / d20170513-3291-1yh7vqo / trunk A / tmp / d20170513-3291-1yh7vqo / trunk / LISENS 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 Committing 1.0.17 Legge til tmp / d20170513-3291-1yh7vqo / tags /1.0.17 Legge til tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / LICENSE Legge til tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / README.txt Legge til tmp / d20170513-3291-1yh7vqo / tags / 1.0 .17 / remove-medium-cross-links.php Legge til tmp / d20170513-3291-1yh7vqo / trunk Legg til tmp / d20170513-3291-1yh7vqo / trunk / LICENSE Legge til tmp / d20170513-3291-1yh7vqo / trunk / README.txt Legge til tmp /d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php Sender fildata ... Forpliktet revisjon 1656617.

Og på WordPress.org trac (https://plugins.trac.wordpress.org/browser/):

Advarsler

svn commit To ganger

Siden TravisCI leveres med en gammel versjon av subversion som ikke fungerer bra med underkataloger, gjør jeg det svn commit to ganger.

Den første svn commit fjerner alt inni stamme. Den andre svn commit kopierer alt fra build_dir til stamme.

eksperimentell

Denne leverandøren er fortsatt eksperimentell og er ikke fusjonert til TravisCIs offisielle repo ennå. Du kan holde styr på TravisCIs tilbakemelding på sin trekkforespørsel.

Ved hjelp av kant Fusjonerer ikke grenen min til oppstrøms mesteren. Det er en sjanse for at grenen min ligger bak den offisielle repoen. Når det skjer, kan du gaffel min gren og rebase den, og deretter endre kilde i .travis.yml til GitHub-depotet ditt.

Wrapping Up

Slik bruker du denne distribusjonsleverandøren:

  1. Vert for pluginarkivet på GitHub.
  2. Koble til GitHub og TravisCI.
  3. Legg til konfigurasjonen til .travis.yml.
  4. Skyv en tagg.

Jeg håper alt ovenfor hjelper deg å distribuere plugins til WordPress.org raskere. 

WordPress har en utrolig aktiv økonomi. Det er temaer, plugins, biblioteker og mange andre produkter som hjelper deg med å bygge opp ditt nettsted og prosjekt. Plattformens åpen kildekode gjør det også et godt valg for deg å forbedre programmeringsevnen din. Uansett kan du se alt vi har tilgjengelig på Envato Marketplace.

Takk for at du leste!