Domanda

Il nostro software è basato su piattaforme Linux e Windows. A seconda delle preferenze dello sviluppatore, un contributo viene sviluppato e testato su entrambe le piattaforme e quindi impegnato nel nostro repository di sovversione. Si scopre quindi che il contributo non si basa sull'altra piattaforma e che è necessario apportare una correzione. La correzione sull'altra piattaforma potrebbe interrompere di nuovo la build sulla piattaforma originale e così via.

Preferirei vedere un contributo (e testare la regressione) anche sull'altra piattaforma prima di impegnarmi. Abbiamo un server di generazione continua (CruiseControl), ma quel server si crea dal repository. Sto cercando una soluzione in cui il server di build continuo si basa sull'altra piattaforma come controllo pre-commit e quindi esegue il commit delle cose se la compilazione e il test hanno esito positivo.

Qualche suggerimento?

È stato utile?

Soluzione

Matheiu Godlewski ha dato un buon suggerimento al CruiseControl wiki

Se combini il suo suggerimento con l'elemento veto , penso che tu dovrebbe essere impostato.

Altri suggerimenti

Teamcity gestisce il commit pre-testato, potresti essere in grado di fare qualcosa con le nuove funzionalità di concatenamento di build in 4.0 ( http://www.jetbrains.com/teamcity/features/newfeatures.html ). Gli agenti sono multipiattaforma e possono essere configurati per eseguire solo determinati bit della build, quindi potrebbero essere configurati per eseguire solo un sottoinsieme di test.

Nota che in realtà non l'ho fatto :)

Potrebbe essere più facile avere due filiali, una in cui le persone effettuano il check-in e un'altra in cui uniscono le loro modifiche dopo aver superato l'integrazione continua.

Abbiamo utilizzato una piattaforma di costruzione e test personalizzata che potrebbe essere distribuita in remoto su più sistemi operativi (e più prodotti di database su più sistemi operativi). Questo è stato fatto come un build notturno con una regola che correggi i tuoi bug la mattina successiva.

Non è quindi del tutto continuo, ma è potenzialmente molto lavoro da fare su un hook pre-commit. Soprattutto se il repository di controllo del codice sorgente blocca i file interessati per la durata dell'esecuzione dell'hook pre-commit.

Penso che ci sia una differenza tra un test di integrazione continua che viene eseguito durante il giorno, per commit, e un test di integrazione del sistema che viene eseguito di notte.

Douglas Leeder ha suggerito una "integrazione" ramo - la cosa bella è che è possibile automatizzare. Se i test superano, unisci al "trunk".

Alcuni sistemi di controllo della versione (ad es. bzr / hg / git) rendono questo più facile di altri, ma è possibile sulla maggior parte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top