SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

エンジニアのためのCI/CD再入門

CircleCIで始めるCI/CD導入の基本のキ

エンジニアのためのCI/CD再入門 第2回

設定ファイル:.circleci/config.yml

 次にCircleCIの設定方法を学んでいきましょう。次の設定はCircleCIで"Hello World!"と表示させるだけの設定です。

version: 2.0
jobs:
  build:
    docker:
      - image: circleci/node:4.8.2
    steps:
      - checkout
      - run: echo "Hello World!"

 たったこれだけの設定ですが、アプリケーションのコンパイルやテストはなくてもCircleCIはちゃんとビルドとして処理してくれます。ユーザーが設定したようにビルドを実行する、2.0の柔軟さがこの設定でも垣間見えます。

YAMLについて

 YAMLは主に配列、ハッシュ、文字列や数字を表すスカラの3つデータ構造を使って記述していきます。

 配列はハイフンと半角スペースを使います。

- foo
- bar
=> ["foo", "bar"]

 ハッシュはコロンと半角スペースを使います。

foo: bar
=> {"foo":"bar"}

 配列とハッシュをネストすることもできます。

jobs:
  build:
    docker:
      - image: circleci/node:4.8.2
      
=> {"jobs": {
      "build": {
        "docker": [{"image": "circleci/node:4.8.2"}]
      }
     }
   }

 YAMLは奥が深いデータ構造です。詳しく知りたい方はこの連載を読むことをおすすめします。また、.circleci/config.ymlがちゃんと書けているか確かめたい時はオンラインのYMALパーサーなどを使うとよいでしょう。

 1つずつ説明していきます。まず、前提としてCircleCIの設定のほとんどは.circleci/config.ymlというYAML形式のファイルに書きます。.circleci/config.ymlをプロジェクト配下に置くと、CircleCIはここから設定を読み込んで、それに従ってビルドを実行していきます。

  • version: 2:この設定ファイルがCircleCI 2.0対応ということを宣言しています。
  • jobs:ジョブ(詳しくは後述)の設定をここ以降に書きます。
  • buildbuildというジョブを設定していきます。
  • docker:ビルドで使うDockerイメージを指定します。前述したようにCircleCIはDockerをネイティブサポートしているので、好きなDockerのイメージを使ってビルドの設定ができます。
  • steps:ステップとは実際に実行されるコマンドやビルドのアクションです。それらをsteps配下に書いていくことでビルドの設定をしていきます。

ステップについて

 ステップには大きくわけて、ユーザーが任意のコマンドを実行できるステップと、CircleCIがあらかじめ用意しているビルトインステップがあります。前者はすべてrun:ステップで書きます。

 上記の例だと、シェルでecho "Hello World!"と実行することができます。詳しくは後述しますが、CircleCIの基本はこのrunステップを組み合わせてビルドの設定を作っていきます。

 checkoutはビルドインステップの一つです。GitHubやBitbucketなどのVCSからコードをダウンロードします。ビルドインステップはCircleCIがあらかじめ用意したCI/CDをする上で必須の処理をまとめたものです。すべてのステップはここから確認できます。よく使うステップについては本記事の中で紹介していくので、任意コマンドを実行するためのrunステップとビルトインステップの2種類があることを覚えておいてください。

次のページ
実際のアプリケーションの例

この記事は参考になりましたか?

エンジニアのためのCI/CD再入門連載記事一覧

もっと読む

この記事の著者

金 洋国(CircleCI Japan)(キム ヒロクニ)

CircleCIで2.0などのプロダクト開発に携わった後、CircleCI Japanを立ち上げてからはTech Leadとして技術全般を担当。趣味は電動キックボードで日本で普及するように様々な活動をしています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11208 2018/11/29 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー