CircleCI2.1 の設定から CircleCI2.0 の設定に変換する

CircleCI CLI (circleciコマンド)を使います。インストールがまだの場合以下で。

curl -fLSs https://circle.ci/cli | bash

このコマンドのconfig process <config.ymlへの相対パス>を実行します。ここで対象となる設定には注意しなければならない事が2つほどあります。

  1. jobs.buildが存在する
  2. またはworkflowsがある

以下のような.circleci/config.ymlを変換してみます。

version: 2.1

executors:
  node:
    docker:
      - image: circleci/node:10

jobs:
  build:
    executor: node
    steps:
      - run: node -v

結果は標準出力なので書き込み先も指定します。

circleci config process .circleci/config.yml > .circleci/config2.0.yml

結果はこうなりました。

version: 2
jobs:
  build:
    docker:
    - image: circleci/node:10
    steps:
    - run:
        command: node -v
workflows:
  version: 2
  workflow:
    jobs:
    - build

# Original config.yml file:
# version: 2.1
#
# executors:
#   node:
#     docker:
#       - image: circleci/node:10
#
# jobs:
#   build:
#     executor: node
#     steps:
#       - run: node -v

ちなみに注意することで言ったように以下は変換できません。

version: 2.1

executors:
  node:
    docker:
      - image: circleci/node:10

jobs:
  sandbox:
    executor: node
    steps:
      - run: node -v

jobs.buildがない場合はこのようにします。

version: 2.1

executors:
  node:
    docker:
      - image: circleci/node:10

jobs:
  sandbox:
    executor: node
    steps:
      - run: node -v
      
workflows:
  workflow:
    jobs:
      - sandbox