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

        共 1868字,需瀏覽 4分鐘

         ·

        2020-11-07 11:19

        為什么要使用Git

        1. 分布式

        2. 分支管理

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

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

        7bdc0010ee5ece9b4515798b0710f5cc.webp

        Git使用指南

        Git 四個(gè)區(qū)域:

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

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

        3. 本地倉(cāng)庫(kù):用于存儲(chǔ)本地工作區(qū)和暫存區(qū)提交上 來(lái)的變更(新增、修改、刪除)過(guò)的文件的地方。

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

        30312a1e865f45e2ae39651cbc5472c3.webp

        Git基本工作流程:

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

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

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

        fed23658890442e17664c2a7f4bd7840.webp

        Git提交規(guī)范:

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

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

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

        4. 分支命名盡量以功能點(diǎn)命名,比如 feature_accessdata,bugfix_dataquery。


        Git分支管理最佳實(shí)踐:

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

        914a5a2e3576265e12e78ffc45f1ff7d.webp

        Git分支管理最佳實(shí)踐:

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


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

        a630fe037d87f6d6e0d4ce14d3c7f4b2.webp

        GitLab代碼管理


        499a8502bc34ed6db4aa0f8cee2591be.webp


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

        Gitlab-CI是什么??

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


        CI/CD:

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

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


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

        a12805015a44ba3a18188a740991eb92.webp

        常見(jiàn)的CI/CD:?

        1. jenkins?

        2. github上的travis-ci?

        3. Drone CI?

        4. Gitlab-ci

        6ba6ecd37b360564a4a181e4997470ef.webp

        Gitlab-CI需要了解下面三個(gè)概念:


        d1fc9fb5a95c325011bbb6a1d4b263d4.webp


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

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

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


        a30ec72206cb9ffb41d00b10a962ffba.webp


        基本寫(xiě)法:

        我們?cè)诠こ汤锩鎰?chuàng)建.gitlab-ci.yml,最簡(jiǎn)單的寫(xiě)法如下: 這是一種類(lèi)似json的一種描述方法,如果沒(méi)了解過(guò)的可以搜索yaml進(jìn)行了解。

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

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

        baf344854d9f78a93d29eaede5c41f7e.webp


        簡(jiǎn)單例子:

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

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


        1. install_deps:安裝依賴(lài)

        2. test階段:運(yùn)行npmruntest

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

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

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

        d253fefaf795bd6cf48ea5291697809a.webp


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


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





        瀏覽 67
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 操小嫩逼的视频 | 国产精品一级毛片在码A片 | 成人干B| 成人爽a毛片一区二区免费 | 亚洲老逼 |