iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0

延續昨天小試身手,今天就來使用 vscode 產生 .gitlab-ci.yml 檔吧

首先,在專案的根目錄中,新增一個 .gitlab-ci.yml 檔案

https://ithelp.ithome.com.tw/upload/images/20230921/20162639g64M6x2R7F.png

假設,我們今天想要有三個環境,分別是 stage, uat, production

stages:
    - dev
    - uat
    - prod

# 宣告 job 的名稱
dev:
    # 宣告 job 屬於哪一個 stages
    stage: dev
    # 在 job 中要執行的指令
    script:
        - echo "Deploying to dev"
    # 只有在 main branch 時才會執行
    only:
        - main

uat: 
    stage: uat
    script:
        - echo "Deploying to uat"
    only:
        - main

prod:
    stage: prod
    script:
        - echo "Deploying to prod"
    only:
        - main

這時候就可以看到,三個分別的步驟都完成並且通過啦!
https://ithelp.ithome.com.tw/upload/images/20230921/20162639I52W5yBNtq.png

那我們點進去看一下裡面的資訊
https://ithelp.ithome.com.tw/upload/images/20230921/20162639i9uWrMgHF2.png
https://ithelp.ithome.com.tw/upload/images/20230921/2016263964lN1DBBnC.png
https://ithelp.ithome.com.tw/upload/images/20230921/20162639ki6dN5YCKp.png
如上圖,可以看到 job succeeded 的字樣。

分析一下裡面的內容:
第一行 Running with gitlab-runner 16.3.0~beta.108.g2b6048b4 (2b6048b4)

  • 表示這次執行這個工作的 runner 版本

Preparing the "docker+machine" executor

  • 執行script 前的環境內容設置,為了要完成這份 job 要準備需要的工作環境。看上述資料會以預設 ruby:3.1 的 docker image 作為執行環境。當然你也可以指定自己想要的(Shell, SSH, Kubernetes…)。可以看到 pull imae 的時間也被計算在內,所以要特別注意佔據的時間。

Getting source from Git repository

  • 這邊在做的事為從 git repo 中取得原始碼,可以看到下方有個 git depth set to 20 ,為了減少可能下載太多資料導致時間拉得太長,指定只取得最近 20 次 commit 資訊,這個在 yml 檔中也可以設定。

Skipping Git submodules setup

  • Git Submodule 像是一個子層(子 Repository 的概念),假設你用 git push 的話,子 Repository 的資料並不會同步到 remote repository。這邊是因為 git 默認不會下載子模組,因此忽略初始化的步驟。

$ echo "Deploying to dev"

  • 印出我們剛剛指定的資訊 Deploying to dev

這邊就先簡單試做基本內容,明天再來看看還有什麼可以設定的吧!

參考文章:


上一篇
小試身手,建立第一條 CI/CD Pipeline
下一篇
Build stage 和 產出的 artifact
系列文
往後端邁進的菜前端30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言