Gitlab 自動構建心得


上面是簡單接受一下gitlab ci的工作原理

GitLab-CI

這個是一套配合GitLab使用的持續集成系統,是GitLab自帶的,也就是你裝GitLab的那台服務器上就帶有的。無需多考慮。.gitlab-ci.yml的腳本解析就由它來負責。

GitLab-Runner

這個是腳本執行的承載者,.gitlab-ci.yml的script部分的運行就是由runner來負責的。GitLab-CI瀏覽過項目里的.gitlab-ci.yml文件之后,根據里面的規則,分配到各個Runner來運行相應的腳本script。這些腳本有的是測試項目用的,有的是部署用的。

.gitlab-ci.yml

這個是在git項目的根目錄下的一個文件,記錄了一系列的階段和執行規則。GitLab-CI在push后會解析它,根據里面的內容調用runner來運行。

1.gitlab安裝教程就不介紹了(公司架設好的).

具體請百度

2.創建上傳你的項目.

具體請百度

3.配置流水線

進入 設置->CI/CD 流水線進行操作

需要設置流水線就需要先添加一個runner.(就是到時候用來構建的遠程機器)

如何設置一個新項目的特定 Runner

  • 安裝 GitLab Runner 軟件。 請參閱 GitLab Runner 章節 來安裝
  • 在 Runner 安裝時使用下面的鏈接: https://gitlab.xxxxxxx.com:6062/ci
  • 在設置時使用下面的注冊授權碼: xxxxxxxxxxxxxz(這個在CI/CD 流水線頁面里面)
  • 啟動 runner!

4.編寫.gitlab-ci.yml文件(主要步驟來了)

下面貼一個我的

# This file is a template, and might need editing before it works on your project.
# see https://docs.gitlab.com/ce/ci/yaml/README.html for all available options
# you can delete this line if you're not using Docker
image: busybox:latest
before_script:
- echo "Before script section"
- echo "For example you might run an update here or install a build dependency"
- echo "Or perhaps you might print out some debugging details"

after_script:
- echo "After script section"
- echo "For example you might do some cleanup here"
stages:
- build
- test
- deploy

#構建節點
build_default_job:
stage: build
script:
- echo "Do your build here"
- make clean
- make
- make install

#測試
test1_job:
stage: test
script:
- echo "test1"

#默認上次打包
deploy_default_job:
stage: deploy
script:
- echo "Clear residue file"
- python3 PackageUpload.py
- make clean

#構建失敗后郵件提醒
deploy_failure_job:
stage: deploy
script:
- echo "build break,mail..."
- make clean
when: on_failure

簡單解釋一下上面的內容:

  1. stages:描寫的是構造的順序 上面的如果失敗下面的就不會允許(部分設置了when的除外)

  2. sage:描述的是job的類型(同樣類型的job是同時運行的配有先后順序)

  3. before_script: 是在所有job之前運行的內容.

  4. after_script:是在所有job之后運行的內容.

  5. when:可以設置每個job在什么情況下運行

    設置值 內容
    on_success 只有當前一個階段的所有工作成功時才執行工作。這是默認值。
    n_failure 僅當前一個階段的至少一個作業發生故障時才執行作業。
    always 無論前一階段的工作狀況如何,執行工作。
    manual 手動執行作業(在GitLab 8.10中添加)。閱讀 下面的手動操作。

這個文件具體可以看https://segmentfault.com/a/1190000010442764 這篇文章寫得非常的詳細

注意:

關鍵字 是否必須 描述
image 用於docker鏡像,查看docker文檔
services 用於docker服務,查看docker文檔
stages 定義構建階段
before_script 定義在每個job之前運行的命令
after_script 定義在每個job之后運行的命令
variable 定義構建變量
cache 定義一組文件列表,可在后續運行中使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM