天天看點

前端VUE基于gitlab的CI_CD

目錄

CI

1.Gitlab的CI

1.1 GitLab-Runner

1.2 .gitlab-ci.yml

1.3 配置.gitlab-ci.yml

1.3.1 Pipeline概念

1.3.2 Stages

1.3.3 Jobs

2.CI/CD VUE應用

2.1 建立dockfile檔案

2.2 建立.gitlab-ci.yml檔案

2.3 注冊git runner

2.4 流水線編譯成功

持續內建指的是,頻繁地(一天多次)将代碼內建到主幹。

持續內建的目的,就是讓産品可以快速疊代,同時還能保持高品質。它的核心措施是,代碼內建到主幹之前,必須通過自動化測試。隻要有一個測試用例失敗,就不能內建。

從 GitLab 8.0 開始,GitLab CI 就已經內建在 GitLab 中,我們隻要在項目中添加一個 .gitlab-ci.yml 檔案,然後添加一個 Runner,即可進行持續內建。 而且随着 GitLab 的更新,GitLab CI 變得越來越強大。

首先明白Gitlab CI 幾個基本的概念

這個是腳本執行的承載者,.gitlab-ci.yml的script部分的運作就是由runner來負責的。GitLab-CI浏覽過項目裡的.gitlab-ci.yml檔案之後,根據裡面的規則,配置設定到各個Runner來運作相應的腳本script。這些腳本有的是測試項目用的,有的是部署用的。

這個是在git項目的根目錄下的一個檔案,記錄了一系列的階段和執行規則。GitLab-CI在push後會解析它,根據裡面的内容調用runner來運作。

簡單來說就是,你利用Git版本管理Push了本地代碼到Remote上(這裡就是你gitlab.com),然後Gitlab,就通知你的伺服器,也就是Gitlab-runner來運作建構任務。然後跑測試用例,測試用例通過了就生成Build出相應的環境的代碼,自動部署上不同的環境伺服器上面去。

配置好 Runner 之後,我們要做的事情就是在項目根目錄中添加 .gitlab-ci.yml 檔案了。 當我們添加了 .gitlab-ci.yml 檔案後,每次送出代碼或者合并 MR 都會自動運作建構任務了。

在.gitlab-ci.yml有一些需要講解的概念

一次 Pipeline 其實相當于一次建構任務,裡面可以包含多個流程,如安裝依賴、運作測試、編譯、部署測試伺服器、部署生産伺服器等流程。我們的任何送出或者 Merge Request 的合并都可以觸發 Pipeline。如下圖:

Stages 表示建構階段,說白了就是上面提到的流程。

我們可以在一次 Pipeline 中定義多個 Stages,每個Stage可以完成不同的任務。

Stages有下面的特點:

所有 Stages 會按照順序運作,即當一個 Stage 完成後,下一個 Stage 才會開始

隻有當所有 Stages 完成後,該建構任務 (Pipeline) 才會成功

如果任何一個 Stage 失敗,那麼後面的 Stages 不會執行,該建構任務 (Pipeline) 失敗

是以,Stages 和 Pipeline 的關系就是:

Jobs 表示建構工作,表示某個 Stage 裡面執行的工作。

我們可以在 Stages 裡面定義多個 Jobs,這些 Jobs 會有以下特點:

相同 Stage 中的 Jobs 會并行執行

相同 Stage 中的 Jobs 都執行成功時,該 Stage 才會成功

如果任何一個 Job 失敗,那麼該 Stage 失敗,即該建構任務 (Pipeline) 失敗

是以,Jobs 和 Stage 的關系圖就是:

該docker配置摁鍵拉取node鏡像,用來編譯我們的生産環境的應用,第二階段拉取nginx的鏡像用來運作我們第一階段建構的編譯應用。

執行daemon off的原因

加上了daemon off,nginx才能一直在背景持續運作,否則就會被docker程序終止,因為docker預設會終止pid為1的程序。Docker 容器啟動時,預設會把容器内部第一個程序,也就是pid=1的程式,作為docker容器是否正在運作的依據,如果 docker 容器pid=1的程序挂了,那麼docker容器便會直接退出。

Docker未執行自定義的CMD之前,nginx的pid是1,執行到CMD之後,nginx就在背景運作,bash或sh腳本的pid變成了1。

是以一旦執行完自定義CMD,nginx容器也就退出了。

網上資料很多,自行解決。

前端VUE基于gitlab的CI_CD

線上也出現了我們想要的登入頁面

前端VUE基于gitlab的CI_CD

參考文章

How to auto deploy a Vue application using GitLab CI/CD on Ubuntu 18.04

前端的gitlab的ci初嘗試

版權聲明:本文為部落客翻譯文章+自己了解,部分代碼自己寫,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結和本聲明。 本文連結:https://www.cnblogs.com/JerryMouseLi/p/15380089.html

The Sky is the limit.

繼續閱讀