首先,Gitlab pages是很簡單的,至少比起github pages要簡單很多,
Gitlab Pages的原理這是樣的:首先,當你新建一個Gitlab專案的時候,你同時也建了一個存盤庫,
只要你的工程目錄的根目錄下有.gitlab-ci.yml檔案,注意必須嚴格起這個名字,gitlab runner就會執行這個腳本檔案,
腳本的最終目的很簡單:把靜態檔案放入名為public目錄下的檔案夾內,Gitlab pages會一直去這個存盤庫的public目錄找,注意:這個public是指存盤庫的public,與專案結構無關,換言之,這個public目錄不可見,
也就是說:當你在專案的根目錄下添加了.gitlab-ci.yml,且在腳本中將靜態檔案正確地放入了public檔案夾,gitlab page就會自動打開并部署,部署的域名將會默認分配,
當然,如果你不想使用默認的配置,而是想部署到特定的域名和服務器,則需要在yml檔案中進行一些docker的配置,
開發者提交代碼后,runner檢索專案根目錄下名為.gitlab-ci.yml的檔案,并執行檔案中的腳本,腳本內容包括專案的運行,打包,快取打包檔案,轉移檔案到public目錄以供gitlab pages使用,而gitlab pages會到public目錄中決議靜態檔案成頁面,
好,現在就來看一下我寫的一份CI腳本,首先說一下,CI的代碼風格類似于python這種,純靠縮進來區分層級關系的,所以書寫時,縮進是嚴格的,

下面是代碼注釋版版的:
building: //自己隨便命名的 image: node:latest //node鏡像為最新版的,最好指定版本號 stage: build //當前stage階段為build script: //build階段運行的腳本 - npm install --progress=false --no-optional //根據package.json來安裝依賴 progress設為false是為了不列印安裝的具體進度,no optional是為了跳過npm推薦的但不是編譯必須的,也沒有寫在package.json里一些依賴,比如說查看源代碼等 - npm run build //打包 artifacts: //工件,可以快取在gitlab的流水線記錄中,供直接下載 expire_in: 3 days //工件快取的有效時間 paths: //路徑 - dist //工件指向的目錄,這里指整個dist目錄 cache: //快取 paths: //路徑 - node_modules/ //快取node_mudules將大大提高ci運行的速度 pages: //隨便起的名字 stage: deploy //當前階段為deploy script: //deploy階段運行的命令 - rm -rf public/* //linux命令,遞回無詢問洗掉public目錄下所有檔案- mv dist/* public //將dist目錄下的所有檔案都移動到public目錄下 artifacts: //工件快取 expire_in: 3 days //時效為3天 paths: //路徑 - public //快取整個public目錄的檔案 only: - dev //ceate pages下的所有操作只在dev分支上進行
下載一個工件下來看看:

可以發現我所言非虛,這時候我們把這個提交推到遠程,

等待這個流水線跑完,在 專案 --> 設定 --> pages 中,可以看到線上頁面已經生成了,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/213775.html
標籤:其他
上一篇:作業996機制與企業團隊文化
下一篇:Ice簡介+Qt代碼示例
