Ho letto e provato vari flussi di lavoro con Wordpress / git. C'è un numero di opzioni disponibili e ho alcuni flussi di lavoro modellati approssimativamente, ma non importa quale io scelga c'è sempre qualcuno o qualcosa che perderà.
Adottatori del flusso di lavoro
- Sviluppatori (competenti, abituati a git)
- Designer (non usato per git, ma competente)
- "Utenti CMS" (meno competenti)
Configurazione
Questa parte non è realmente soggetta a modifiche a meno che un flusso di lavoro non sia realmente, ne valga davvero la pena.
- Il server di produzione viene estratto dal ramo prod / master
- Il server di sviluppo interno recupera le ultime novità dal ramo di sviluppo
- Sono disponibili test unitari che devono essere eseguiti prima del push locale al server
- Quando lo sviluppo riceve una spinta e c'è un nuovo tag, i test automatici vengono eseguiti sul server Dev. Se passano, si fondono con la produzione
Opzione A
- Tutti i file memorizzati in git
- Schema del database e amp; contenuto memorizzato in git
- uso dei file
local-config.php
per una facile implementazione locale - non consentire l'accesso al pannello di amministrazione per il sito live sul server di produzione e sviluppo
Pro
- tutto il lavoro svolto localmente
- facile da ridistribuire
- tutto è controllato da git per la tracciabilità
- versione funzionante conosciuta (non ci sono aggiornamenti automatici per far confondere le cose potenzialmente)
Contro
- le modifiche minori ai post / le pagine devono essere eseguite tramite il controllo del codice ogni volta
- i non-dev possono finire usando questo sistema più
- unire un file SQL grezzo è problematico
Opzione B
- Tutti i file memorizzati in git
- Schema del database e amp; contenuto memorizzato in git
- uso dei file
local-config.php
per una facile implementazione locale - non consentire l'accesso al pannello di amministrazione per il sito live solo sulla produzione
Pro
- principalmente uguale all'opzione A, ma le modifiche ai post / contenuti possono ora essere fatte tramite il server Dev
- più facile da comprendere per le persone meno tecniche
- passa a Dev site db archiviato automaticamente dal server ogni tanto
Contro
- perdere la tracciabilità con i commit in quanto sarà solo un "server" utente che ha commesso una modifica del contenuto della pagina
- aprire il potenziale per far lavorare le persone sul server Dev e saltare il locale
- pain da gestire
Opzione C
- solo modelli / plugin personalizzati archiviati in git
- db eseguito il backup con altro metodo (probabilmente manualmente)
- post, pagine, installazioni di plugin, aggiornamenti possono essere fatti dal vivo sul sito prod (yuck)
Pro
- più user-friendly
Contro
- least Dev friendly.
- non veloce e facile da ridistribuire
- non ho idea se l'aggiornamento al core interrompa un test
- non ho idea se un aggiornamento a un plug-in interrompe roba
- utenti che modificano le pagine al volo dal vivo
C'è un buon mezzo felice o un modo migliore di lavorare che mi manca del tutto o è un lavoro "succhia e vedi" dove dobbiamo implementarlo, trovare i problemi che la gente sta avendo e sistemare.