最近來研究個 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
即可獲取分支或標籤的名稱,可以做更多客製化的設定。
更多的設定可以查看官網說明: