配置Gitlab pages和Gitlab CI

  首先,Gitlab pages是很簡單的,至少比起github pages要簡單不少。node

  Gitlab Pages的原理這是樣的:首先,當你新建一個Gitlab項目的時候,你同時也建了一個存儲庫。
python

  只要你的工程目錄的根目錄下有.gitlab-ci.yml文件,注意必須嚴格起這個名字。gitlab runner就會執行這個腳本文件。linux

  腳本的最終目的很簡單:把靜態文件放入名爲public目錄下的文件夾內。Gitlab pages會一直去這個存儲庫的public目錄找。注意:這個public是指存儲庫的public,與項目結構無關。換言之,這個public目錄不可見。git

  也就是說:當你在項目的根目錄下添加了.gitlab-ci.yml,且在腳本中將靜態文件正確地放入了public文件夾,gitlab page就會自動打開並部署,部署的域名將會默認分配。github

  固然,若是你不想使用默認的配置,而是想部署到特定的域名和服務器,則須要在yml文件中進行一些docker的配置。docker

  開發者提交代碼後,runner檢索項目根目錄下名爲.gitlab-ci.yml的文件,並執行文件中的腳本,腳本內容包括項目的運行,打包,緩存打包文件,轉移文件到public目錄以供gitlab pages使用。而gitlab pages會到public目錄中解析靜態文件成頁面。npm

  好,如今就來看一下我寫的一份CI腳本,首先說一下,CI的代碼風格相似於python這種,純靠縮進來區分層級關係的,因此書寫時,縮進是嚴格的json

  

 

  下面是代碼註釋版版的:緩存

  

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 中,能夠看到線上頁面已經生成了。

  

相關文章
相關標籤/搜索