Circle CIのconfig-translation APIを使って2.0に移行する

circle-ci-migration-center

Circle CI 1.0の提供が2018年8月で終了になります。

個人的には年内いっぱいぐらいは続くと思っていたので、予想より早く終了するな、という印象でした。
(こういう判断をできるのは良いことだと思います)

弊社のレポジトリも概ね2.0になりつつあるのですが、一部1.0のものが残っていたので、migration用のAPIを使って移行してみることにしました。

ちなみにTimeCrowdのリポジトリを移行した際の記事はこちらです。(昨年10月)

config-translation API

1.0のconfigファイルを2.0の書式に変換してくれるAPIが以下で提供されています。

また、これを簡単に使うことができるスクリプトも用意されています。

今回は、自分でAPIを叩いてみました。

API Tokenの取得

以下からPersonal Tokenを作成することができます。

使い終わったらトークンを削除するのを忘れないようにしましょう。

configファイルの変換

masterブランチから変換する場合は、このようなコマンドになります。

$ mkdir .circleci
$ curl "https://circleci.com/api/v1.1/project/github/オーナー名/レポジトリ名/config-translation?circle-token=トークン&branch=master" > .circleci/config.yml
$ rm circle.yml 

このままcommitしてみると…なんとテスト部分は問題なく動きました!
(変換対象のプロジェクトはNode.js製でした。)

細かい調整

テストの実行以外の部分で動かなくなった部分があったので、調整を行いました。

  • working_directoryが変わっていた(変換後はオーナー名が含まれていたので削除)
  • deploymentに書かれていた内容がなくなっていた(workflowを使うか、とりあえずstepsに書けばOK)
  • imageを弊社で用意しているものに変更
  • コメントなど不要部分を削除

一応自動変換してくれるのですが、最終には結構手を入れることになりました。今まで2.0の設定を書いたことがなければ、参考になるでしょう。

既に2.0の設定に慣れている場合は、1.0の設定を元に自分で書いちゃったほうが早いかなぁと思いました。

TimeCrowdに戻る