更新於 2024/11/08閱讀時間約 3 分鐘

GitLab CI/CD 之 only

raw-image

前言

上次我們講解了 CI/CD 的相依性,也講解了 stages 工作階段的運作,今天我們來了解 only 的作用,可以幫助我們做甚麼

only 作用

only 可以指定那些工作,只在哪個分支名運作,假設今天開了一個新分支,名子叫 feature/add_test 這樣子,接著 CI/CD 有定義四個工作,然後四隻分支有指定 only 是在當 develop 這支分支有 push 時才會觸發 CI/CD,如果是 feature/add_test 這支分支 push 上去,是不會觸發 CI/CD 工作的。接下來我們來做一個練習。

only 定義分支規則

要定義 only 只要把分支名稱定義上去就好,可以定義多個分支名稱。以下是範例參閱

run-unit-test:
stage: testing
before_script:
- echo '安裝套件'
script:
- echo '執行單元測試'
after_script:
- echo '刪除不必要資源'
only:
- main
- develop

練習時間

首先我們先將上次練習 CI/CD 的專案打開,然後我們先開一個 develop 分支 push 到 gitlab。

接著我們定義下面工作,我們來看有甚麼差別。

stages:
- testing
- build
- deploy

test-build:
stage: testing
script:
- echo '測試打包'
only:
- main
- develop

build-docker-image:
stage: build
script:
- echo '打包 docker image'
only:
- main
- develop

deploy-to-development:
stage: deploy
script:
- echo '佈署伺服器 develop'
only:
- develop

deploy-to-production:
stage: deploy
script:
- echo '佈署伺服器 production'
only:
- main

接著 push 到 develop 來看一下 CI/CD 運作,裡面有三個工作,分別是 “test-build”、”build-docker-image” 及 “deploy-to-development”

接著 push 到 develop 來看一下 CI/CD 運作,裡面有三個工作,分別是 “test-build”、”build-docker-image” 及 “deploy-to-production”

我們後續會教一整套的佈署流程,讓各位知道業界在自動化佈署,大概會有哪些流程



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.