[CI/CD] CircleCI 簡介
最近來研究個 CircleCI,CI/CD 真是軟肋一把,雖然用起來不是很難,不過說實在官網文件有些寫得不夠清楚,還是很容易踩到坑,需要論壇求援。
一開始我連帳號註冊都有毛病,本來想說用 gitHub 登入就好,懶得再註冊新的帳號,結果 gitHub 的帳號好像就只能和 gitHub 的專案做連結,但公司是使用 gitLab,於是只好另外以 Email 再註冊一個帳號 Orz
CircleCI 的設定寫起來不難,寫完會有種好像自己會了什麼但又沒那麼熟的感覺,和 Docker Composer 設定檔差不多。
YAML 大概的結構如下,預設放置在專案目錄的 .circleci/ 下:
version: 2.1
# 參數
parameters:
is-dev:
type: boolean
default: false
# CircleCI 提供的套件
orbs:
aws-cli: circleci/aws-cli@3.1.4
kubernetes: circleci/kubernetes@1.3.1
# 執行工作
jobs:
build-image:
machine:
image: ubuntu-2204:2022.10.2
steps:
# 執行指令
- run:
name: Run Scripts
command: |
echo "Hello"
# 工作流 & 執行條件
workflows:
update-dev:
when: << pipeline.parameters.is-dev >>
jobs:
- build-image:
context: circle-ci-context
CircleCI 可以設定環境變數,位置在 Organization Settings > Contexts,設定參數並指定 Project 權限後便可以在設定檔中直接使用。
CircleCI 也提供 Built-in 的環境變數(Project values and variables – CircleCI),供設定檔使用,例如 CIRCLE_BRANCH、CIRCLE_TAG 即可獲取分支或標籤的名稱,可以做更多客製化的設定。
更多的設定可以查看官網說明: