Używamy stosu CruiseControl.Net/NAnt/Subversion dla CI. Wykonanie nowego zamówienia na każdą kompilację jest zbyt czasochłonne, więc obecnie robimy tylko aktualizację kopii roboczej. Pozostaje jednak możliwość, że osierocone pliki mogą pozostać w kopii roboczej, po usunięciu z kontroli źródła. Próbowaliśmy użyć zadania NAnt delete, aby usunąć wszystkie pliki źródłowe kodu przed aktualizacją, ale może to spowodować uszkodzenie kopii roboczej. Czy ktoś wie, jak szybko uruchomić kompilację na czystej i aktualnej kopii roboczej? EDYCJA: Jesteśmy na SVN 1.3.2Czyste kompilacje w ciągłej integracji
Odpowiedz
Po prostu "zaktualizuj", SVN usunie wszystkie pliki, które zostały usunięte w formancie źródłowym. Jednak pliki utworzone podczas procesu kompilacji mogą nadal tam być i mogą zakłócać działanie nowej wersji. Nie jestem pewien, czy SVN ma polecenie, aby je usunąć, ale domyślam się, że można to zrobić za pomocą małego skryptu, SVN zdecydowanie może powiedzieć, które pliki są pod kontrolą źródła, a które nie.
Jeśli w kopii roboczej, która wykonała aktualizację svn, pozostały osierocone pliki, to istnieje błąd w wersji Subversion.
Możesz wykonać codzienną pełną kompilację i pozostawić kompilację przy odprawie w niezmienionej postaci. Ponadto, w przypadku wersji wdrażania, prawdopodobnie dobrym pomysłem jest zawsze używać czystej pełnej kompilacji.
Jedyny sposób, jaki mogę wymyślić, to posiadanie dwóch kopii na serwerze kompilacji. Najpierw aktualizujesz w pierwszej lokalizacji. Usuwasz drugą lokalizację. Kopiuj od pierwszego do drugiego, a następnie wbuduj w drugą lokalizację. W ten sposób zawsze zaczynasz od czystej kompilacji.
Być może zechcesz sprawdzić, dlaczego wykonanie Twojego zlecenia trwa tak długo. Użyłem tego samego stosu buildserver i nigdy nie miałem z tym problemów. Subversion zwykle zajmuje mniej czasu niż sama kompilacja.
Mieliśmy podobny problem z naszą implementacją CC.
Nasze rozwiązanie ... Stworzyliśmy już nocną kompilację 3:00, która oprócz testów bazowych wykonywała dłuższe testy integracyjne. Po prostu postanowiliśmy, że 3:00 AM zbuduje w pełni czystą kompozycję na świeżym drzewie. Jak to było w środku nocy, rzadko miało to wpływ na każdego. Wszystkie inne "normalne" meldunki prowadziły przyrostowe kompilacje.
- 1. Profilowanie Java w ciągłej integracji
- 2. Wyewidencjonowanie w celu ciągłej integracji
- 3. Obsługa wersji w środowisku ciągłej integracji
- 4. Jak przeprowadzić migrację z "Integracji tajemnej" do ciągłej integracji?
- 5. TeamCity do ciągłej integracji Python/Django
- 6. Z jakiego oprogramowania do ciągłej integracji korzystasz?
- 7. Automatyczne kompilacje gałęzi z SVN
- 8. Ruch w kierunku ciągłej integracji w toku, wszelkie sugestie?
- 9. Jak korzystać z MsTest w ciągłej integracji bez VS?
- 10. Stos ciągłej integracji w systemie Windows z Mercurial + Mercurial Queues?
- 11. Konsolidacja ciągłej integracji w ramach programu Play 2.0
- 12. Możliwość integracji Google AppEngine i Google Code w celu ciągłej integracji?
- 13. Azure WebJobs Deployment z ciągłej integracji z Visual Studio Online
- 14. Czy poleciłbyś system TFS lub inny system ciągłej integracji?
- 15. Wersje obrazów Docker do ciągłej integracji/Ciągłego wdrażania
- 16. Serwer ciągłej integracji dla C++ - A co z zależnościami bibliotek?
- 17. Czy można rozwijać program SharePoint przy użyciu technik ciągłej integracji?
- 18. Zalecany serwer do ciągłej integracji dla projektu PHP
- 19. Które narzędzia analizy programu dla Delphi obsługują systemy ciągłej integracji?
- 20. Jak korzystać z ciągłej integracji z projektem Eclipse?
- 21. Tłumienie podpisu GPG dla opartych na Maven kompilacji ciągłej integracji (Travis CI)
- 22. Jak dynamicznie uruchamiać kompilacje downstream w jenkins?
- 23. Powtarzalne kompilacje w pythonie
- 24. Testowanie integracji z Redis
- 25. Specyfikacja funkcji kończy się niepowodzeniem tylko w przypadku usług ciągłej integracji CircleCI lub Codeship
- 26. Integracja FxCop i StyleCop w proces ciągłej integracji TFS 2010/VS
- 27. Błąd Git "Nie można połączyć plików binarnych" w ciągłej integracji kompilacji
- 28. Sbt dla ciągłej integracji: wydrukuj stos i wyjdź w przypadku błędu
- 29. Rozproszone kompilacje w XCode 4.5?
- 30. Czyste funkcjonalne programowanie w D