はじめに
CircleCIの公式ドキュメントが日本語化されたので、ハンズオンがてら公式HelloWorldやってみました。
Qiitaでやってみた系の記事はもう書かんでいいやと思いましたが優れたUIの前に屈服!
作業環境
mac
事前調査
ググる
良い機会でしたのでCI/CDについての記事を適当に一読。
金さん(CCI2 Japan)が書かれたCodeZineの記事がわかりやすかったですが登録が必要とのことで1ページしか読めん!
ただ1枚目の末尾に書かれてる図が重要ですので、ぜひ読んでみてください。
ユーザー登録&連携
CCI2とgithubの連携は事前に済ませておきましたのでスキップ。
手順は公式に記載されています。めっちゃ簡単です。
ハンズオン開始
1. GitHub または Bitbucket のローカルリポジトリのルートディレクトリに .circleci ディレクトリを作成します。
この日本語を理解するのに一瞬?となりましたが、Organization/.circleciディレクトリを作成すればおkです。
2. .circleci ディレクトリに以下の内容を含む config.yml ファイルを追加し、hello-build orb をインポートします。
viやtouchでファイルを作ってコードはコピペ。
変更のコミットやプッシュは、ビルド実行のトリガーになります。 CircleCI で初めてプロジェクトを作成する場合は、プロジェクトページにアクセスし、[Add Project] ボタンをクリックします。その後プロジェクト名の横にある [Bulid Project] ボタンをクリックしてください。
ここちょっとハマりました、作業端末のローカルリポジトリでconfig.ymlを作成したのでpushすればもう勝手に動く(ちなみに現時点でCCI2が何をどうhelloworldしてくれるのか全く不明瞭レベル)だろうと思ったのですが、JOBメニューに何も表示されない。なぜだ。
ここで手順をしっかり間違えて、次の「Echo Hello World を実行する build ジョブ」のコードをconfig.ymlに追記(書き換えじゃないですよ。ブロックを追記)してpushしましたがしーん。
結局、
ADD PROJECTSからSet up Project→Start building
で起動しました。よかったw
ドキュメントとUIで表示が違うので(もちろんUIが正ですが)迷う時間が生まれましたが完了。
Hello unameもテストで実行されてました。これが自動テストってやつか!
おわりに
ハンズオンにまだ続きが続きがありますのでそれはおいおい。
料金体系のとこのLinuxとMacOSの差がよくわからんので次はその辺りの知識が補充できれば。
総じて満足のいくドキュメントでした!CicleCIちょっとできるを目指して!
追記
気になってたとこを調べました。
Spin up Environment
.circleci/.configに書かれてるコードから一時的な環境を作成する。
料金体系のとこに書かれてる1コンテナってのはこれを指しているのかも。
この環境はCCI2側のクラウドとかオンプレ環境で我々からは見えないんでしょうね、たぶん。
例えばTerraformのテストしたいならここで指定してあげれば一時的なTerraform環境が構築されてテストが走ります。
Checkout code
HelloWorldのサンプルコードにはこのブロックは書かれていませんが、同じく.configに書かれているcheckoutが実行されます。おれ絶対わかってない。
stepsのcheckout以下に処理ブロック(このことばが合ってる自信なし)を記載すると降順で処理されていくようです。
Terraformのinitとかplanしたいならその処理を変数に入れて、変数をcheckout以下に書いてあげる。サンプルコードがないと何言ってるかわかりませんね。。
現状の疑問
JOBSとWORKFLOWSの違いがわからん。一緒に見える