Come gestisci più progetti che formano gli stessi prodotti?

2

Ho un'esperienza limitata quando si tratta di costruire e sistemi di controllo della versione. Mi sembra di avere incontrato un problema comune, ma ho difficoltà a scoprire come viene gestito in genere.

Supponiamo che tu abbia quattro progetti di codice sorgente:

  • fooLib - Libreria condivisa
  • fizzLib - Libreria condivisa
  • buzzApp - Applicazione che dipende da fooLib
  • barApp - Applicazione che dipende da fizzLib e fooLib

Ora, dì che hai due prodotti:

  • ProdottoA - richiede solo buzzApp
  • ProdottoB - ha bisogno solo di barApp

Se il mio compito era quello di apportare correzioni di bug a ProductB, come potrei fare per verificare i progetti? Devo calcolare le dipendenze (o cercarle) o c'è un modo automatico per farlo? Inoltre, come è possibile automatizzarlo per le build notturne per ciascun prodotto?

    
posta josec 06.07.2011 - 22:02
fonte

1 risposta

1

Questo dipende da due cose:

  • quale sistema di controllo versione stai usando?
  • quale sistema di generazione stai usando?

Per un progetto come questo non posso esagerare con la raccomandazione Jenkins . Monitorerà il tuo sistema di controllo delle versioni, eseguirà le modifiche così come sono fatte, costruirà le librerie e poi i prodotti finali secondo necessità.

Il modo in cui ho fatto (e visto questo fatto) è di creare quattro progetti separati nel tuo sistema di controllo della versione.

Il sistema di compilazione per le librerie crea la libreria finale (.so o .lib a seconda delle necessità). Il risultato finale della build è pubblicato su un'unità condivisa o su un server condiviso a cui tutti possono accedere.

Sul server di build dell'applicazione, le librerie verrebbero installate dalla confezione finale per il processo di compilazione.

Ho visto tentativi di creare script di master build per fare tutti e quattro i passaggi in una volta. Ma la sceneggiatura fatta a mano tende ad essere molto fragile. Usa Jenkins. Salverà la tua sanità mentale.

    
risposta data 07.07.2011 - 04:50
fonte

Leggi altre domande sui tag