Come installare un plugin WordPress da TravisCI a WordPress.org

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.

Prerequisiti

Ne hai bisogno prima di proseguire:

  1. Account GitHub
  2. Conto TravisCI
  3. Plugin codice sorgente
  4. Plugin SVN per WordPress.org (ottieni questo dopo l'approvazione della recensione del plugin.)

Prima spinta su GitHub

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

Collegamento di TravisCI

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.

Prima 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

Aggiunta della configurazione del provider di distribuzione

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 

Spiegazione della configurazione

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:

  1. è un PHP 7.1 costruire
  2. è un commit taggato
  3. è attivato dal repository TangRufus / tutsplus-dpl-demo (i fork e le richieste pull non attivano la distribuzione)

lumaca

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.

Tagging

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

risultati

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/):

Avvertenze

svn commit Due volte

Poiché 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_dirtronco.

Sperimentale

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.

Avvolgendo

Per utilizzare questo provider di distribuzione:

  1. Ospita il repository plugin su GitHub.
  2. Collega GitHub e TravisCI.
  3. Aggiungi la configurazione a .travis.yml.
  4. Spingere un tag.

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!