Pre-build task - ștergerea copiei de lucru în CruiseControl.NET

În prezent, lucrez la crearea unui mediu de integrare continuă la locul de muncă. Folosim VisualSVN Server și CrusieControl.NET. Ocazional, o construcție va eșua și un simptom este că există conflicte în copia de lucru CruiseControl.NET. Cred că acest lucru se datorează modului în care am setat soluțiile Visual Studio. Sperăm că, cu cât mai multe proiecte pe care le desfășurăm în acest mediu, cu atât înțelegem mai bine cum să le punem în scenă, așa că nu pun la îndoială de ce se întâmplă conflictele în acest stadiu. Pentru a repara construirile, șterg copia de lucru și forțez o construcție nouă - aceasta funcționează de fiecare dată (în prezent). Așadar, întrebările mele sunt: ​​ștergerea copiei de lucru este o parte validă a procesului de integrare continuă și cum mă descurc?

Am încercat soluții inclusiv MSTask și sunând la ștergere din linia de comandă, dar nu am noroc.

Ne pare rau pentru ca a fost asa de prosteasca - o treaba buna asta este un beta :)

0
fr hi bn
CleanCopy pentru Subversion este implementat acum, în versiunea 1.4.1. Trebuie doar să setați CleanCopy la adevărat în config
adăugat autor Alex, sursa

5 răspunsuri

@Brad Barker

Curățenia înseamnă doar să ștergi produsele de construcție.

Ștergerea copiei de lucru șterge orice altceva (fișiere sursă și proiect etc.).

În general, este bine dacă sunteți constructorul poate funcționa fără a face o ștergere completă, deoarece acest lucru replică ceea ce face un dezvoltator normal. Orice conflict pe care îl găsește în timpul actualizării este un avertisment timpuriu la ceea ce vă pot aștepta dezvoltatorii.


@jamie

Pentru versiuni oficiale da este mai bine să faci un checkout complet curat. Deci, cred că depinde de scopul construirii.

0
adăugat

Este foarte comună și, în general, o practică bună pentru ca orice proces de construire să facă un "curat" înainte de a face orice construcție semnificativă. Acest lucru împiedică orice "artefacte" din clădirile anterioare să stingă rezultatul.

Un lucru curat este în esență ceea ce faceți prin ștergerea copiei de lucru.

0
adăugat

Dacă verificați jira de către CC.NET, există un patch verificat pentru implementare CleanCopy pentru Subversion, care face exact ceea ce doriți și trebuie doar să setați CleanCopy egal cu adevărat în interiorul blocului de control al sursei, la fel ca în cazul TFS.

0
adăugat

@jamie: Există un motiv pentru care este posibil să nu puteți realiza o construcție curată de fiecare dată când utilizați un server de integrare continuă - construiți timp. Pe unele proiecte pe care le-am lucrat, construirile curate au nevoie de 80+ minute (un proiect încorporat format din mii de fișiere C + + pentru a fi completat și apoi compilați împotriva mai multor ținte). În acest caz, trebuie să cântăriți beneficiul feedback-ului rapid împotriva probabilității ca o construcție curată să captureze ceva pe care o construire incrementală nu o va face. În cazul nostru, am lucrat la îmbunătățirea și paralelizarea procesului de construire, permițând în același timp construirea incrementală a mașinii noastre CI. Am avut câteva probleme pentru că nu făceam construcții curate, dar făcând o construcție curată pe timp de noapte sau săptămânal, puteți elimina riscul fără a pierde feedback-ul rapid al mașinii dvs. CI.

0
adăugat

Efectuarea unei ștergeri complete înainte sau după construirea dvs. este o practică bună. Aceasta înseamnă că nu există nicio șansă ca mediul dvs. de construcție să înregistreze un dosar depășit. Clădirea dvs. exact împotriva a ceea ce este în depozit.

Ștergerea copiei de lucru este posibilă, așa cum am făcut-o cu Nant.

În Nant aș avea un script curat în folderul propriu decât cel pe care vreau să îl șterg și îl voi invoca apoi de la CC.net.

I assume this should also be possible with a batch file. Take a look at the rmdir command http://www.computerhope.com/rmdirhlp.htm

@pauldoo

Prefer ca serverul meu CI să facă o ștergere completă, deoarece nu vreau să fiu surpriză atunci când mă duc să fac o lansare de lansare, care ar trebui să se facă întotdeauna dintr-un stat curat. Dar ar trebui să fie capabil să se ocupe de ambele, nici un motiv de ce nu

0
adăugat