Non a tutti piace la sovversione. Se usi Git per gestire lo sviluppo di plugin per WordPress, mantenere il tuo repo Git e il repo SVN di WordPress.org in sincrono è noioso. Fortunatamente, possiamo utilizzare il fornitore di distribuzione TravisCI per automatizzare la distribuzione SVN dopo i test.
Ne hai bisogno prima di proseguire:
Per utilizzare TravisCI, dobbiamo ospitare il repository plugin su GitHub.
Per prima cosa, crea un nuovo repository su GitHub andando in questa pagina e inserendo il nome del repository.
Quindi, inseriremo tutti i file plugin in Git e li inseriremo in questo repository GitHub. Ricorda di sostituire l'URL remoto con il tuo.
$ cd / percorso / per / plugin / directory $ git init $ git add -A $ git commit -m "first commit" $ git remote aggiungi origine https://github.com/TangRufus/tutsplus-dpl-demo.git $ git push -u origine master
Collega il tuo repository GitHub con TravisCI andando nella pagina del tuo account TravisCI e accendendo il tuo repository. Clic Account di sincronizzazione nell'angolo in alto a destra se il repository appena creato non viene visualizzato nell'elenco.
Sei tutto pronto. Ogni volta che spingi nuovi commit o qualcuno fa richieste pull a GitHub, attiverà una build su TravisCI.
TravisCI utilizza un file YAML chiamato .travis.yml
nella radice del tuo repository per personalizzare le build. Scopri di più dal documento di personalizzazione della build per vedere come puoi controllare il ciclo di vita della build.
Questo è un file di configurazione di base che indica a TravisCI di eseguire build su PHP 7.0
e 7.1
. Poiché il test non rientra nell'ambito di questo tutorial, ho sostituito i comandi di test effettivi con echo 'Tested'
.
# .travis.yml lingua: php sudo: false php: - 7.0 - 7.1 script: # Esegui i tuoi test qui. - echo 'Tested'
Impegna questo file e spingilo su GitHub. Le build di TravisCI verranno attivate automaticamente.
$ git aggiungi .travis.yml $ git ci -am "Aggiungi .travis.yml" $ git push origine master
I provider di distribuzione vengono eseguiti se i test sono passati e condizionali predefiniti (il sopra
sezione) sono soddisfatti. TravisCI fornisce quasi 40 fornitori ufficiali di distribuzione. Purtroppo nessuno di questi supporta i repository di sovversione di WordPress.org. Così, ho creato il mio fornitore personalizzato. Puoi trovarlo su GitHub e la sua richiesta di pull.
Per usarlo, aggiungi queste righe alla fine di .travis.yml
.
before_deploy: - mkdir build - cp LICENSE build - cp README.txt build - cp remove-medium-cross-link.php build deploy: - provider: wordpress-plugin edge: source: TypistTech / dpl branch: add-wordpress-plugin- implementazione su: php: 7.1 tags: true repo: TangRufus / tutsplus-dpl-demo slug: remove-medium-cross-links nome utente: tangrufus password: $ WORDPRESS_ORG_PASSWORD build_dir: build
before_deploy
Il before_deploy
sezione copia tre file nel costruire
directory che deve essere controllata nel repository di subversion di WordPress.org. Nel mondo reale, questo è dove vuoi correre sorso
o grugnito
attività per preparare il plug-in pronto per la produzione.
Non copiare file di test o file non necessari in costruire
come il tutto costruire
la directory è rilasciata agli utenti e gli utenti non hanno bisogno dei tuoi file di test.
fornitore
e bordo
Diciamo a TravisCI di installare il mio provider da add-wordpress-plugin-distribuzione
ramo https://github.com/TypistTech/dpl. Una volta che la richiesta pull è stata unita, il bordo
parte non è necessaria.
sopra
Il sopra
sezione controlla se deve essere eseguita una distribuzione. La distribuzione viene attivata solo quando tutti i requisiti sono soddisfatti.
Nell'esempio precedente, ci schieriamo su WordPress.org solo quando:
7.1
costruirelumaca
La lumaca del plugin.
Se l'URL del tuo plugin è https://wordpress.org/plugins/my-awesome-plugin/, allora my-impressionante-plugin
è lo slug del plugin.
nome utente
Il tuo nome utente dell'account WordPress.org con cui hai inviato il plug-in per l'approvazione della recensione.
parola d'ordine
La password dell'account WordPress.org. Non salvare mai questa password nel .travis.yml
in testo normale!
Nell'esempio sopra, usiamo il $ WORDPRESS_ORG_PASSWORD
variabile d'ambiente, che può essere impostata sul dashboard Web di TravisCI. Scegliere impostazioni dal menu cog e fare clic su Inserisci nel variabili ambientali sezione. Non attivare mai l'opzione "Visualizza valore nel registro di costruzione"!
build_dir
Tutto in questa directory sarà impegnato nel repository di sovversione di WordPress.org, che sarà incluso nel file zip scaricabile.
Impostiamo questo costruire
perché abbiamo copiato i file plugin in costruire
durante before_deploy
.
Supponiamo di aver corretto alcuni bug e siamo pronti a pubblicare una nuova versione su WordPress.org.
Questi comandi confermano le modifiche al file maestro
ramo ma non attivare una distribuzione:
$ git add -A $ git commit -am "Bug fix" $ git push origine master
Implementazione dell'attivazione di commit con tag solo:
$ git tag -a 1.0.17 -m "Version bump 1.0.17" $ git push master originale - tag
Torna a TravisCI e apri il PHP 7.1
costruire il registro. Dovresti vedere una distribuzione registrata.
Costruire dpl gem localmente con source TypistTech / dpl e branch add-wordpress-plugin-deployment Installare deploy dipendencies !!! Il supporto per WordPress Plugin è sperimentale !!! Preparazione della distribuzione Ricerca della configurazione per la distribuzione del plug-in di WordPress ... Slug: remove-medium-cross-links Nome utente: tangrufus Password found Directory di compilazione: build Directory di asset: non trovata Convalida della configurazione per la distribuzione del plug-in di WordPress ... La configurazione sembra buona Going to deloy tag: 1.0.17 Pulizia del repository git con 'git stash --all'. Se hai bisogno di artefatti per la distribuzione, imposta 'deploy.skip_cleanup: true'. Vedi https://docs.travis-ci.com/user/deployment/#Uploading-Files. / usr / lib / git-core / git-stash: 186: / usr / lib / git-core / git-stash: impossibile creare /home/travis/build/TangRufus/tutsplus-dpl-demo/.git/logs/ refs / stash: Directory inesistente Distribuzione dell'applicazione Verifica https://plugins.svn.wordpress.org/remove-medium-cross-links Clearing / tmp / d20170513-3291-1yh7vqo / trunk ... Rimozione di file cancellati da subversion ... D / tmp / d20170513-3291-1yh7vqo / trunk Rimozione temporanea di trunk e risorse (se asset_dir è impostato) Eliminazione di tmp / d20170513-3291-1yh7vqo / trunk Revisione con commit 1656616. Copia di build in / tmp / d20170513-3291-1yh7vqo / trunk ... Copia / tmp / d20170513-3291-1yh7vqo / trunk to /tmp/d20170513-3291-1yh7vqo/tags/1.0.17... Aggiunta di nuovi file a subversion ... A / tmp / d20170513-3291-1yh7vqo / trunk A / tmp / d20170513-3291-1yh7vqo / trunk / LICENSE 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 Aggiunta di tmp / d20170513-3291-1yh7vqo / tags /1.0.17 Aggiunta di tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / LICENSE Aggiunta di tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / README.txt Aggiunta di tmp / d20170513-3291-1yh7vqo / tags / 1.0 .17 / remove-medium-cross-links.php Aggiunta di tmp / d20170513-3291-1yh7vqo / trunk Aggiunta di tmp / d20170513-3291-1yh7vqo / trunk / LICENZA Aggiunta di tmp / d20170513-3291-1yh7vqo / trunk / README.txt Aggiunta di tmp /d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php Trasmissione dati file ... Revisione impegnata 1656617.
E sul trac di WordPress.org (https://plugins.trac.wordpress.org/browser/
svn commit
Due voltePoiché TravisCI viene fornito con una vecchia versione di sovversione
che non funziona bene con le sottodirectory, lo so svn commit
due volte.
Il primo svn commit
rimuove tutto dentro tronco
. Il secondo svn commit
copia tutto da build_dir
a tronco
.
Questo provider è ancora sperimentale e non è ancora unito al repository ufficiale di TravisCI. Puoi tenere traccia del feedback di TravisCI sulla sua richiesta di pull.
utilizzando bordo
non unisce il mio ramo al master upstream. C'è una possibilità che la mia filiale sia dietro al repository ufficiale. Quando succede, puoi sborsare il mio ramo e ribaltarlo, e poi cambiare fonte
nel .travis.yml
al tuo repository GitHub.
Per utilizzare questo provider di distribuzione:
.travis.yml
.Spero che quanto sopra vi aiuti a distribuire i plugin su WordPress.org più velocemente.
WordPress ha un'economia incredibilmente attiva. Ci sono temi, plugin, librerie e molti altri prodotti che ti aiutano a costruire il tuo sito e progetto. La natura open source della piattaforma lo rende anche un'ottima opzione per migliorare le tue capacità di programmazione. In ogni caso, puoi vedere tutto ciò che abbiamo a disposizione nel Marketplace Envato.
Grazie per aver letto!