2016-11-22 44 views
-1

我想知道什麼是在生產中運行Angular 2的最佳做法。我被要求建立一個軟件工廠(持續集成,自動構建,自動部署)。角2與詹金斯和獨立的生產服務器連續部署

什麼讓我困惑的是:

我們不使用開發服務器。我們希望將應用程序及其依賴項部署到真正的生產服務器。 https://angular.io/docs/ts/latest/guide/webpack.html#!#production-configuration

爲什麼我要運行在同一臺服務器上的應用程序?

目前我已經設置了一個jenkins服務器。這個想法是,當發生更改(它每15分鐘輪詢一次git)時,它會測試軟件並在成功啓動構建並自動將其部署到另一臺服務器。但是對於Angular CLI,build命令不會生成可部署的dist文件夾。你仍然需要通過ng服務來運行它。

我只是在生產服務器上構建它的問題是,如果測試失敗,它不應該繼續。

有沒有人實現了一些相似或有一個想法如何設置?

+1

角CLI生成與納克構建-prod命令DIST文件夾。 dist文件夾的內容必須放在你的服務器上 – AMagyar

+0

是的,但是隻有dist文件夾和某種形式的網絡服務器才能運行服務器,或者你找到了方法嗎? –

+0

我已經用TeamCity和Octopus Deploy完成了它,而我所做的正是AMagyar所說的。在TeamCity中運行「ng build -prod」,然後將dist文件夾打包成OctoPack併發送到Octopus Deploy。八達通將文件夾推入Azure。我也做了同樣的事情,但是進入我配置IIS的位置。 –

回答

1

可以運行ng build,無需ng serve

3

取決於你的應用程序結構,測試和部署策略。 Angular實現了各種測試策略,如角度測試實用程序,jasmin,用於單元測試的業力和/或用於末端2測試的量角器。有關詳細信息,請參閱angular testing上的文檔。

  1. GitHook或定期檢查觸發詹金斯
  2. 製作通過構建因果報應ng build
  3. 運行單元測試與ng test
  4. 運行的一端穿過量角器2月底測試與ng e2e
  5. 部署角2應用到例如。GitHub的頁面

根據您的設置,你也有一個API的服務器,比我的工作流程可能是這個樣子:

  1. API服務器單元測試
  2. API服務器API /端到端測試
  3. API服務器部署新環境
  4. 根據API策略產卵測試環境
  5. 建立測試
  6. 納克測試(單元測試)
  7. 納克E2E(端2端試驗)
  8. 構建用於生產
  9. 部署到新的環境
  10. 測試新的環境(測試+健康檢查)
  11. 交換地址CNAME到新的環境
  12. 終止舊的API

或者你通過捆綁和構建應用程序到你的服務器,只是角色simplyfy這出了新的服務器版本,那麼你的API和SPA是百達同步,你不必擔心API版本,跨端腳本...

閱讀是在那裏