2013-03-08 7 views
7

Mam następujące pytanie:Node.js i TeamCity

W naszej firmie rozpoczynamy nowy projekt internetowy z dużą ilością plików .js .css. Nasza firma jest firmą Java, co oznacza, że ​​wszystkie prace rozwojowe są wykonywane w: Java/Maven/Team City dla procesu kompilacji.

Ponieważ firma korzysta już z TeamCity, chcemy jej użyć również do budowy strony internetowej, staramy się wprowadzić Node.js i GruntJs w naszym procesie kompilacji. Zastanawiam się, czy ktoś ma doświadczenie w ustawianiu/konfigurowaniu Node.js jak biegacz w TeamCity?

Na koniec chcemy "zatwierdzić" zmianę, a następnie kompilację, ta kompilacja zostanie wykonana z programem Node.js. Znalazłem następujące plugin dla TeamCity.

Każda pomoc będzie mile widziane

Odpowiedz

4

Używam GruntJS i TeamCity w Project Web, która zawiera kilka miejsc, takich jak API Dokumentacja portali Administrator, a Jednostka Tests/Smock/integracja. Po kilku prototypach ostatecznie decyduję się umieścić całą logikę w JEDNYM pliku GruntJS, aby osobno zbudować każdą część projektu.

Aby to zrobić, dodałem jeden nowy projekt do repozytorium źródłowego tylko dla wdrożenia. W ramach tego projektu mam bazę Gruntfile.js, która jest tylko punktem wyjściowym do procesów budowania sub-Grunt dla każdej części projektu. Mogę przekazać parametr do oparcia przez Grunt-CLI, aby wybrać cel dla kompilacji, taki jak: grunt - target = api (uwaga: przekazuję również wersję/wersję i inne rzeczy również, ale dla uproszczenia nie wchodzę głębiej w ta odpowiedź)

Następnie stworzyłem jeden skrypt powłoki, który uruchamia się z wszystkimi możliwymi parametrami w sekwencji. I w końcu właśnie stworzyłem jeden krok w konfiguracji kompilacji w TeamCity, aby uruchomić ten skrypt powłoki!

Czyniąc w ten sposób zyskam wiele korzyści, takich jak:

  1. umieścić wszystkie wdrażania logiki w kontroli źródła dla lepszej konserwacji.
  2. Każdy programista ma do niego dostęp i może budować nawet na lokalnym komputerze.
  3. Integracja z TeamCity jest tak prosta, że ​​można ją łatwo przenieść na inne platformy CI!

Jeśli chcesz mieć każdy projekt na oddzielnych repozytoriów, a następnie można skonfigurować jeden z repozytorium Wdrożenie GruntJS bazowych i tworzenia submodules do innych repozytoriów.