<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>

          前后端分離項(xiàng)目中Gitlab-CI的2個(gè)技巧

          共 1822字,需瀏覽 4分鐘

           ·

          2020-10-24 03:06


          之前我分享了為ASP.NET Core后端搭建Gitlab-CI/CD實(shí)踐今天繼續(xù)聊一聊為

          前后端分離搭建Gitlab-CI的額外經(jīng)驗(yàn)。

          Before

          Gitlab-ci是Gitlab提供的CI/CD特性,結(jié)合Gitlab簡單友好的配置界面,能愉悅的在Gitlab界面查看管道執(zhí)行流程,并自然流暢的推動(dòng)敏捷開發(fā)。
          Gitlab-CI/CD的核心是搭建Gitlab Runner、編寫.gitlab-ci.yaml文件。
          詳細(xì)示例請(qǐng)參考:Gitlab CI/CD+ASP.NET Core.

          本次前后端兩個(gè)項(xiàng)目使用同一個(gè)Gitlab Runner(shell模式),前端項(xiàng)目的gitlab-ci.yaml構(gòu)建Job如圖:

          Round 1

          單個(gè)Gitlab Runner可為多個(gè)項(xiàng)目提供構(gòu)建服務(wù)

          gitlab-Runner register命令只能接受一個(gè)注冊(cè)token,當(dāng)時(shí)為支持多個(gè)項(xiàng)目,花了不少冤枉心思倒騰Gitlab Runner.

          你可以為注冊(cè)的項(xiàng)目解鎖Runner,這樣Gitlab Runner就可以為其他項(xiàng)目提供構(gòu)建:

          Round 2

          使用Runner緩存加快前端構(gòu)建過程
          大家都知道npm_module被前端開發(fā)者詬病為毒瘤, 而Gitlab runner執(zhí)行每次構(gòu)建job之前都會(huì)清場(chǎng),pull/fetch指定的代碼再執(zhí)行job, 這就導(dǎo)致每次build job會(huì)耗時(shí)很久(要拉取毒瘤)。

          #!/bin/bash

          cd packages/event-analysis
          yarn config set registry http://registry.npm.xxoo.com && yarn --prefer-offline --frozen-lockfile
          npm run build

          以上是build任務(wù)的腳本frontend.sh,總耗時(shí)3m33s,其中yarn命令拉取npm_modules耗時(shí)172.52s

          gitlab runner支持緩存
          在.gitlab-ci.yaml 文件中定義cache指令:cache被用來在job之間緩存文件,更強(qiáng)大的是可以定義文件依賴緩存:

          build:
          stage: build
          cache:
          key:
          files:
          - packages/event-analysis/package.json
          paths:
          - node_modules
          script:
          - ./frontend.sh
          tags:
          - my-tag

          緩存key是yarn命令要用到的package.json,緩存內(nèi)容是npm_modules;
          只要這個(gè)package.json文件未變更,后續(xù)任務(wù)就會(huì)使用緩存的npm_modules,而不用重建npm_modules依賴。

          使用runner緩存優(yōu)化后build任務(wù)總耗時(shí)1m18s,其中yarn命令耗時(shí)22.83s, 相比之前耗時(shí)大大減少 ,妙哉。

          Reference

          1. https://docs.gitlab.com/ee/ci/runners/#prevent-a-specific-runner-from-being-enabled-for-other-projects
          2. https://docs.gitlab.com/ee/ci/caching/

          Devops的圈子很大,上面的Gitlab-ci也只是點(diǎn)到為止,足夠應(yīng)付我手上的前后端分離項(xiàng)目.. ? 歡迎大家來捶我。

          回復(fù)?【關(guān)閉】學(xué)關(guān)
          回復(fù)?【實(shí)戰(zhàn)】獲取20套實(shí)戰(zhàn)源碼
          回復(fù)?【被刪】學(xué)個(gè)
          回復(fù)?【訪客】學(xué)
          回復(fù)?【小程序】學(xué)獲取15套【入門+實(shí)戰(zhàn)+賺錢】小程序源碼
          回復(fù)?【python】學(xué)微獲取全套0基礎(chǔ)Python知識(shí)手冊(cè)
          回復(fù)?【2019】獲取2019 .NET 開發(fā)者峰會(huì)資料PPT
          回復(fù)?【加群】加入dotnet微信交流群

          PanDownload復(fù)活了,60MB/s,目前已開源!


          開源推薦:.Net Core3.1 + EF Core + LayUI 封裝的MVC版后臺(tái)管理系統(tǒng)



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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  性猛交ⅩXXXx | 国产精品操逼片 | 蜜桃精品成人影片 | 精品操逼视频 | 久久草大香蕉 |