在持續集成/持續交付CI/CD流程中,你會常見到YAML 檔的踪跡,例如在CI/CD 中用於定義自動化的構建、測試和部署流程、Kubernetes配置文件使用YAML格式來定義應用程序部署和服務、Docker Compose 文件也是使用 YAML 格式定義多容器應用程序。
YAML 是一種輕量級的標記語言,優於 XML 和 JSON,它使用縮排和簡潔的語法,強調數據的層次結構,支援註解,通常用於配置文件和數據交換。以下是YAML檔的基本語法結構和使用規則:
縮 排: 縮排是 YAML 非常重要的部分,YAML 中只能使用空格進行縮排。 YAML 使用縮排來表示數據的層次結構,確保相同層級的內容有相同的縮排,顯示數據之間的父子層級關係。
鍵值組(Key-Value Pairs): YAML 使用鍵值組的形式來表示數據。一個鍵值組包含一個鍵(key)和一個相應的值(Value),用冒號(:)分隔。例如:
name: John
age: 30
fruits:
- apple
- banana
- orange
person:
name: John
age: 30
hobbies:
- hiking
- reading
# 這是一個註解
name: John
description: |
This is a multiline
description in YAML.
is_active: true
message: "Hello, World!" 或 message: 'Hello, World!'
description: "This is a YAML 'string'."
範例: YAML 檔可以用來定義整個 CI/CD 流程,包括構建、測試、部署和通知等步驟。以下是一個簡單的 .gitlab-ci.yml 流程範例:
stages:
- build
- test
- deploy
build:
stage: build
script:
- # 在這裡定義構建命令
test:
stage: test
script:
- # 在這裡定義測試命令
deploy:
stage: deploy
script:
- # 在這裡定義部署命令