GitLab CI/CD 之 only

前言

上次我們講解了 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"


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

留言

此網誌的熱門文章

Docker 之如何安裝 Docker 容器

Gitlab CI/CD 什麼是 CI/CD

Docker 之建立與使用 Docker Image 清理本地 Image