[CI/CD] CircleCI continuation


由於前面已經遵循 path-filtering 的模式,對於 production 標記 tag 上版的流程,也希望可以分成兩個設定檔來做,維持檔案的整潔,沒想到卻在這裡踩了個坑~

要特別注意:

  1. filters 如果是使用 tag,要將 branches 略過,否則會報錯 。
    {"message":"Pipeline is not in setup state."},我也有點無法參透這個錯誤訊息…求助網路大神 ^^;
  2. continue config 的 jobs 也要記得加上 filters (!!!)。
    本來想說前面已經加了,後面就會自動跑,但沒加就一直過不去,後來發現這是 CircleCI 預設的行為,如果沒有特別聲明要 filter tag,它就不會做事。

config.yml

version: 2.1

setup: true

orbs:
  continuation: circleci/continuation@0.3.1

workflows:
  setup-workflow:
    jobs:
      - continuation/continue:
          filters:
            tags:
              only: /v.*/
            branches:
              ignore: /.*/
          configuration_path: .circleci/continue-config.yml

continue-config.yml

version: 2.1

# 執行工作
jobs:
  build-image:
    machine:
      image: ubuntu-2204:2022.10.2
    steps:
      # 執行指令
      - run:
          name: Run Scripts
          command: |
            echo "Hello"

# 工作流 & 執行條件
workflows:
  update-dev:
    jobs:
      - build-image:
          filters:
            tags:
              only: /v.*/
            branches:
              ignore: /.*/

參考資料:


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *