<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 什么是持續集成? > 原文: [https://www.guru99.com/continuous-integration.html](https://www.guru99.com/continuous-integration.html) ## 什么是持續集成? **持續集成**是一種軟件開發方法,團隊成員每天至少可以集成一次他們的工作。 在這種方法中,每個集成都由自動構建檢查以搜索錯誤。 CI 概念是在二十多年前首次引入的,以避免出現“集成地獄”,這種情況在集成推遲到項目結束時才會發生。 在提交代碼后進行持續集成中,將立即構建并測試軟件。 在具有許多開發人員的大型項目中,一天中要進行多次提交。 每次提交代碼都會被構建和測試。 如果測試通過,則將對構建進行測試以進行部署。 如果部署成功,則將代碼推送到生產環境。 這種提交,構建,測試和部署是一個連續的過程,因此稱為連續集成/部署。 在此 CI 教程中,您將學習: * [什么是持續集成?](#1) * [不使用 CI 進行開發與使用 CI](#2) 進行開發 * [編譯和持續集成之間的區別](#3) * [您需要執行 CI 流程什么?](#4) * [持續集成如何工作?](#5) * [CI 的功能](#6) * [為什么使用 CI?](#7) * [使用 CI 的最佳做法](#8) * [CI 的缺點](#9) * [CI 處理工具](#10) ## 不使用 CI 進行開發與使用 CI 進行開發 這是使用 CI 或不使用 CI 進行開發之間的主要區別。 | **沒有 CI 的開發** | **使用 CI 開發** | | 很多蟲子 | 更少的錯誤 | | 不頻繁的提交 | 定期提交 | | 發行頻率不高且緩慢 | 定期發布工作 | | 整合困難 | 輕松有效的整合 | | 測試發生晚 | 測試要盡早進行,而且經常進行。 | | 提出的問題更難解決 | 更快,更有效地查找和解決問題。 | | 項目可見性差 | 更好的項目可視性 | ## 編譯與持續集成之間的區別 ![](https://img.kancloud.cn/b9/5d/b95deaccd61823e2a070e0340e309c5f_602x389.png) Activities in Continuous Integration 盡管編譯僅編譯代碼,但 CI 會執行以下活動 **數據庫集成**: * 確保數據庫和代碼同步 * 自動創建數據庫和測試數據。 **代碼檢查**: * 確保健康的代碼庫 * 盡早發現問題并應用最佳實踐 **自動部署**: * 允許您隨時發布產品 * 持續可演示狀態,可在任何計算機上使用 **文件生成**: * 確保文檔是最新的 * 從顯影劑中清除燒毀 * 生成構建報告和指標 **編譯**: 編譯是計算機將高級編程語言代碼轉換成計算機能夠理解的機器語言的過程。 它確保了每個目標平臺上的代碼編譯器。 ### 我什么時候建造? * 每次入住時 * 每當依賴項發生變化時 ### 我該如何建造? ![](https://img.kancloud.cn/e1/e3/e1e3876ad48c763a5b749dec610504f1_653x377.png) CI process * 理想情況下,構建應來自命令行,并且不應依賴于 IDE。 * 構建應該使用專用的 Cl 服務器而不是 cron 作業連續進行。 * 每次登錄時都應觸發內置的 CI,而不僅僅是在午夜 * 該構建應立即提供反饋,并且無需開發人員的任何努力 * 識別關鍵指標并進行可視化跟蹤。 更重要的是,立即對他們采取行動 ## 您需要執行 CI 流程什么? ![](https://img.kancloud.cn/36/cc/36cca71e5ca69bd61d8ade6b72fc3b40_470x319.png) 這里是執行整個 CI 流程所需的關鍵元素: * **版本控制系統(VCS)**:它提供??了一種可靠的方法來集中和保留隨時間推移對項目所做的更改。 * **虛擬機**:您應該具有備用服務器或至少一個虛擬機來構建系統。 * **托管 CI 工具解決方案**:為避免使用服務器或虛擬機,您應該使用托管 CI 工具解決方案。 該工具有助于維護整個過程,并提供更輕松的可伸縮性。 * **工具**:如果選擇自托管版本,則需要安裝許多 CI 工具之一,例如 Jenkins,TeamCity,Bamboo,GitLab 等。 ## 持續集成如何工作? 您肯定知道舊手機諾基亞。 諾基亞過去曾實施一個稱為“每晚構建”的程序。 在白天,來自不同開發人員的多次提交后,該軟件每晚都會生成。 由于該軟件每天僅構建一次,因此,在大型代碼庫中隔離,識別和修復錯誤非常費力。 后來,他們采用了持續集成方法。 一旦開發人員提交代碼,便立即構建并測試該軟件。 如果檢測到任何錯誤,則相應的開發人員可以快速修復缺陷。 ![](https://img.kancloud.cn/e3/0e/e30ec66cdf430f9731ac311edd485247_700x546.png) Example of Continuous Integration ## CI 的功能 這是持續集成的重要功能 * 允許您僅維護一個源存儲庫 * 您可以測試生產環境的克隆 * 建筑環境應靠近生產環境。 * 當前版本的持續可用性 * 構建,測試和部署的完整過程應對所有堆棧持有者可見。 ## 為什么使用 CI? 以下是使用持續集成的重要原因: * 幫助您構建質量更高的軟件 * CI 流程有助于擴大工程團隊的人員和交付產出。 * CI 使軟件開發人員可以獨立地并行處理功能。 * 幫助您進行可重復的測試 * 增加可見性,實現更好的溝通 * 幫助開發潛在的可發貨產品以實現全自動構建 * 通過使部署更快,更可預測來幫助您降低風險 * 問題到達時立即反饋 * 在發布日期和時間避免最后一分鐘的混亂 ## 使用 CI 系統的最佳實踐 以下是實施過程中的一些重要最佳做法 * 盡早提交,而且經常提交,永不提交破損的代碼 * 立即修復構建失敗 * 根據指標采取行動 * 內置在每個目標環境中從每個構建中創建工件 * 需要以某種方式執行軟件的構建,以便可以將其自動化 * 不依賴于 IDE * 更改時構建并測試一切 * 數據庫模式算是一切 * 幫助您找出關鍵指標并進行可視化跟蹤 * 經常和提早入住 * 強大的源代碼控制 * 每當您提交代碼時,持續集成就會運行單元測試 * 自動化構建并測試每個人 * 通過自動部署保持快速構建 ## CI 的缺點 這是持續集成過程的缺點/缺點: * 需要初步設置時間和培訓才能熟悉 Cl 服務器 * 制定合適的測試程序至關重要 * 完善的測試套件需要大量的 Cl 服務器資源 * 轉換熟悉的流程 * 需要其他服務器和環境 * 當多個開發人員想要同時集成其代碼時,可能會出現等待時間 ## CI 處理工具 以下是一些最重要的 CI 工具: ### 詹金斯: ![](https://img.kancloud.cn/e5/c6/e5c6db927db26d6982f8473f82cf7778_72x100.png) Jenkins 是一個開源的持續集成工具。 它是使用 Java 編程語言編寫的。 它有助于在更大規模的代碼庫中實時測試和報告隔離的更改。 該軟件可幫助開發人員快速找到并解決其代碼庫&中的缺陷,從而自動測試其構建。 ### 竹: ![](https://img.kancloud.cn/ee/05/ee0558f985dd2c4c72395574dc75743d_250x53.png) Bamboo 是一個持續集成的構建服務器,可在單個位置執行-自動構建,測試和發布。 它與 JIRA 軟件和 Bitbucket 無縫集成。 Bamboo 支持許多語言和技術,例如 CodeDeply,Ducker,Git,SVN,Mercurial,AWS 和 Amazon S3 存儲桶。 ### TeamCity: ![](https://img.kancloud.cn/60/ba/60bacbb477c843c990752745d4d886b8_100x100.png) TeamCity 是支持許多強大功能的持續集成服務器。 即使沒有構建在運行,它也可以維持 CI 服務器的健康和穩定。 它為任何項目提供更好的代碼質量 ### 摘要: * 持續集成是一種軟件開發方法,團隊成員可以每天至少一次集成他們的工作 * 不使用 CI 進行開發會產生許多錯誤,而使用 CI 進行開發會減少錯誤 * 持續集成的重要活動是 1)數據庫集成,2)代碼檢查,3)自動部署,文檔生成和編譯。 * 構建應該使用專用的 Cl 服務器而不是 cron 作業連續進行。 * CI 的重要元素是 1)版本控制系統 2)虛擬機 3)主機 CI 工具解決方案 4)工具 * 持續集成允許您僅維護一個源存儲庫 * CI 流程可幫助您構建質量更高的軟件 * 持續集成過程最重要的最佳實踐是盡早提交,并且經常提交,永不提交破損的代碼 * CI 流程的主要缺點是,完善的測試套件需要 Cl 服務器大量資源 * Jenkins,Bambok 和 Team City 是一些有用的持續集成工具。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看