2009-12-22 11 views
6

Domanda strana, forse. Abbiamo una serie di semplici utility scritte in-house che devono essere eseguite su base automatizzata. Questi sono non creare lavori. Solo cose come l'esecuzione di SendOutHourlyEmailAlarms.exe, KeepFoldersInSynch.exe e così via. Normalmente impostare queste cose come semplici operazioni pianificate/comandi AT (o un servizio di Windows se è necessario un controllo più granulare sulla pianificazione), ma un collaboratore ha impostato un certo numero di queste attività come progetti di costruzione sul CruiseControl. Server NET. Gli ho chiesto perché li ha impostati in questo modo e la sua risposta è stata che le esecuzioni (e i loro registri, valori di ritorno, eccezioni generate) sono state tutte tracciate e registrate e che queste informazioni erano accessibili attraverso un'interfaccia organizzata sul sito Web del server di compilazione. Non potrei discutere con questo.È necessario utilizzare CruiseControl.NET per gestire attività che non sono correlate alla fonte di costruzione?

Ma questo ha solo un odore che non riesco a identificare. È un uso corretto di CruiseControl.NET? In caso contrario, quali sono i pericoli? Anche se potrebbe andare bene, non ci sono altri prodotti più adatti a questo tipo di cose?

+0

Mi piacciono i vantaggi dell'utilizzo di CC.NET. Per eventuali obiezioni contro la miscelazione di attività non di build e di build, una soluzione semplice sarebbe la distribuzione di un'istanza CC.NET separata per tali attività non di compilazione. – hitec

risposta

6

Abbiamo tutti i tipi di attività non correlate alla build per la stessa identica ragione del tuo collega, voglio un punto per cercare tutti i lavori che ho bisogno di eseguire.

Alcuni esempi di nostri progetti CC.Net:

  • installatori FTP a QA remoto

  • Creazione Codice di documentazione di origine

  • Create VM con gli installatori installate per QA nel mattina

  • Installatori di archiviazione

Praticamente tutto quello che devo fare a mano più di una volta, diventa un progetto. IMHO è molto meglio di un compito programmato anche per un altro motivo. I nostri file di configurazione sono nel controllo del codice sorgente, quindi abbiamo 1 posto per apportare modifiche. Non dobbiamo accedere a più server e apportare modifiche o chiederci quale server ha fatto.

+0

Se l'esecuzione effettiva di una di queste attività deve essere su una casella diversa rispetto al server di compilazione (es. Bulk-loading su un server database, in esecuzione sull'unica macchina con driver specifici, ecc.), C'è una soluzione elegante lì ? O è solo per gli eseguibili che possono essere eseguiti direttamente sulla casella di compilazione? –

+0

Facciamo esattamente questo con gli agenti Bamboo e Remote. Funziona davvero bene. – leonm

+0

Abbiamo dozzine di server, di solito questi tipi di cose sono fatti su server non di costruzione. La tua dashboard web può fare riferimento a molti server, quindi non importa. – Alex

1

Solo perché uno strumento è progettato per risolvere un particolare problema non significa che non avrà la stessa facilità nel risolvere problemi simili al di fuori del campo di applicazione originariamente concepito dal creatore dello strumento. Se CruiseControl.NET risolve bene questi problemi, allora è assolutamente lo strumento appropriato da utilizzare.

2

Penso che il tuo collega abbia fatto una buona argomentazione. Se queste attività sono correlate al processo di sviluppo, quindi inserirle in CruesControl.Net come progetto sembra accettabile. Tuttavia, tracciare la linea utilizzando un server di sviluppo per eseguire i processi di produzione. Anche se è vero che "Se l'unico strumento che hai è un martello, tendi a vedere ogni problema come un chiodo", ciò non significa che il martello non sia in grado di risolvere molti problemi!

+0

Penso che l'angolazione del server di produzione/processo di produzione sia ciò che mi ha colpito come un "odore". –