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.
Du trenger disse før du går videre:
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 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.
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
Distribusjon tilbydere kjører hvis testene passerte og forhåndsdefinerte betingelser (the på
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
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.
på
De på
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:
7.1
byggeslug
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
.
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
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/
svn commit
To gangerSiden 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
.
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.
Slik bruker du denne distribusjonsleverandøren:
.travis.yml
.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!