CruiseControl.NET costruisce IfModification ogni notte dall'etichetta dell'ultima build
-
05-07-2019 - |
Domanda
Sto usando un server per costruire lo stesso progetto sia in modo continuo che notturno; tuttavia vorrei che la build notturna si costruisse solo se durante il giorno esiste una modifica. Spero di riuscirci con il vincolo che entrambe le build utilizzino la stessa cartella di lavoro .
Le due opzioni che sto prendendo in considerazione sono:
-
Esegui il polling della build continua e costruisci la build notturna solo se si è verificata una build continua, possibilmente utilizzando un sistema di token (token di set di build continui, token di cancellazione notturno).
-
Esecuzione di un'attività di pre-compilazione per ripristinare il codice sorgente in Last Build Time
Mi sto sporgendo verso la seconda opzione in quanto disaccoppia gli script di build, ma sembra essere un compito molto più difficile.
Suggerimenti e suggerimenti per farlo sarebbero apprezzati!
Informazioni aggiunte:
La build CI è una build rapida di soluzione in una configurazione e forse esegue alcuni test di unità veloci.
La build notturna pulisce la build ambiente, crea software, pacchetti in un programma di installazione, esegue test estesi, etichette il repository di codice sorgente, distribuisce il programma di installazione su una condivisione server per tester manuali da raccogliere ed e-mail il team di test che una build verificabile è stato fatto.
Voglio solo il build notturno per accadere se ci fosse eventuali check-in durante il giorno in modo che i tester non vengano afflitti da e-mail ripetute per lo stesso build.
Soluzione 2
Sono contento della mia nuova soluzione ...
Uso un MultiTrigger con un scheduleTrigger e un prjectTrigger sulla build notturna (meglio chiamare full build) e WriteModification / ReadModification per propagare la cronologia delle modifiche come in questa domanda .
Altri suggerimenti
Potrei finire per semplificare questa attività ma non puoi semplicemente impostare due trigger sul progetto? Un trigger di intervallo per le build continue e un trigger di pianificazione con la condizione IfModificationExists per le build notturne.
<triggers>
<intervalTrigger seconds="60" name="Continuous" />
<scheduleTrigger time="23:30" buildCondition="IfModificationExists" name="Scheduled">
<weekDays>
<weekDay>Monday</weekDay>
</weekDays>
</scheduleTrigger>
</triggers>