<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          DevOps持續(xù)集成之Git、GitLab、GitLab CI篇

          共 1868字,需瀏覽 4分鐘

           ·

          2020-11-07 11:19

          為什么要使用Git

          1. 分布式

          2. 分支管理

          3. 節(jié)省磁盤空間?

          4. 大家都在用(GitHub、Gitee、coding.net)

          7bdc0010ee5ece9b4515798b0710f5cc.webp

          Git使用指南

          Git 四個區(qū)域:

          1. 工作區(qū):就是你克隆項目到本地后,項目所在的 文件夾目錄。

          2. 暫存區(qū):用于存儲工作區(qū)中添加上來的變更(新 增、修改、刪除)的文件的地方。

          3. 本地倉庫:用于存儲本地工作區(qū)和暫存區(qū)提交上 來的變更(新增、修改、刪除)過的文件的地方。

          4. 遠(yuǎn)程倉庫:托管代碼的服務(wù)器,提供web服務(wù), 供大家方便地進行下載,查看,提交和存儲。

          30312a1e865f45e2ae39651cbc5472c3.webp

          Git基本工作流程:

          1. 在工作目錄中修改文件。

          2. 暫存文件,將文件的快照放入暫存區(qū)域。

          3. 提交更新,找到暫存區(qū)域的文件,將快照永久性 存儲到 Git 倉庫目錄。

          fed23658890442e17664c2a7f4bd7840.webp

          Git提交規(guī)范:

          1. 總體原則,從哪個分支checkout的代碼就合回那個 分支,避免分支合并混亂導(dǎo)致代碼錯誤。

          2. 必須以mergerequest的方式合回主分支,并且有 開發(fā)負(fù)責(zé)人對代碼review后才能合入。

          3. 當(dāng)合并發(fā)生沖突時,必須解決完沖突才能提交代碼 以及合并分支。

          4. 分支命名盡量以功能點命名,比如 feature_accessdata,bugfix_dataquery。


          Git分支管理最佳實踐:

          單主干的分支實踐(Trunk-based development,TBD),Google和Facebook都使用這種方式。

          914a5a2e3576265e12e78ffc45f1ff7d.webp

          Git分支管理最佳實踐:

          Git-flow的分支實踐,是目前流傳最廣的git分支管理, 圍繞的核心概念是版本發(fā)布(release)。因此 Git- flow 適用于有較長版本發(fā)布周期的項目。


          Git-flow 流程中包含 5 類分支,分別是 master、 develop、新功能分支(feature)、發(fā)布分支 (release)和 hotfix。

          a630fe037d87f6d6e0d4ce14d3c7f4b2.webp

          GitLab代碼管理


          499a8502bc34ed6db4aa0f8cee2591be.webp


          用GitLab-CI進行持續(xù)集成

          Gitlab-CI是什么??

          gitlab-ci是CI/CD里面的一種。


          CI/CD:

          • CI(Continuous integration)持續(xù)集成,是一種軟件開發(fā)實踐, 每次代碼提交,都通過自動化的構(gòu)建(包括編譯、發(fā)布、自動測試)

          • CD(continuous deployment)持續(xù)部署是通過自動化的構(gòu)建、 測試和部署來快速交付高質(zhì)量的產(chǎn)品。


          gitlab-ci是從gitlab 8.0開始,加入到gitlab中的,我們只需要在 項目中添加一個.gitlab-ci.yml文件,并添加一個gitlab-runner, 即可完成我們的CI/CD操作了。

          a12805015a44ba3a18188a740991eb92.webp

          常見的CI/CD:?

          1. jenkins?

          2. github上的travis-ci?

          3. Drone CI?

          4. Gitlab-ci

          6ba6ecd37b360564a4a181e4997470ef.webp

          Gitlab-CI需要了解下面三個概念:


          d1fc9fb5a95c325011bbb6a1d4b263d4.webp


          前面講解了Gitlab-ci中的一些概念,那我們定義的這個構(gòu)建任務(wù)是運行在哪里的呢?

          我們需要先下載gitlab runner的工具,下載地址:https://docs.gitlab.com/runner/,然后我們能得到一個gitlab-runner可執(zhí)行文件,然后 執(zhí)行g(shù)itlab-runner register腳本。

          ?這個腳本需要下面幾個參數(shù):


          a30ec72206cb9ffb41d00b10a962ffba.webp


          基本寫法:

          我們在工程里面創(chuàng)建.gitlab-ci.yml,最簡單的寫法如下: 這是一種類似json的一種描述方法,如果沒了解過的可以搜索yaml進行了解。

          定義了一個個pipeline,里面有兩個stage,test和build。然后先執(zhí) 行build,再執(zhí)行test的構(gòu)建階段。build構(gòu)建階段是job2構(gòu)成,test 構(gòu)建階段由job1構(gòu)成。分別執(zhí)行對應(yīng)的script。?

          更多的關(guān)鍵字及具體介紹查看官網(wǎng):? http://docs.gitlab.com/ce/ci/yaml/README.html

          baf344854d9f78a93d29eaede5c41f7e.webp


          簡單例子:

          .gitlab-ci.yml構(gòu)建任務(wù)的定義文件中,描述了stage有 5個階段。

          同時設(shè)置了全局的cache。Job only表示只有對應(yīng)的分 支才會觸發(fā)運行對應(yīng)的Jobs。


          1. install_deps:安裝依賴

          2. test階段:運行npmruntest

          3. build階段:執(zhí)行build對應(yīng)的操作

          4. deploy_test階段:使用pm2部署到測試服務(wù)器

          5. deploy_production:部署到生產(chǎn)階段

          d253fefaf795bd6cf48ea5291697809a.webp


          以上簡單介紹了Git、Git分支策略、GitLab及GitLab CI,關(guān)于GitLab在DevOps的更多玩法歡迎大家去實踐。


          請關(guān)注微信公眾號 【DevOpsHub】,獲取更多關(guān)于DevOps研發(fā)運維一體化的信息





          瀏覽 67
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男男久久久 | 俺去俺来也www色老 | 五月婷婷乱伦 | 免看一级a毛片一片成人不卡 | 国产在线最新 |