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の設定を元に自分で書いちゃったほうが早いかなぁと思いました。