SHOEISHA iD

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

連載記事

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

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
エンジニアのためのCI/CD再入門

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

 前回はCI/CDに関する一般的な解説をしました。今回と次回でCI/CDの代表サービスの一つであるCircleCIを使って実際にCI/CDを設定する感覚を学んでもらいたいと思います。今回はCircleCIの設定方法の基礎から始めるので、記事の前半は比較的入門者向けの内容ですが、記事の後半では最新機能のVer. 2.1も紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

 これからCI/CDを導入する方にも、すでに活用されている方にも、CircleCIを通してCI/CDに対する理解を深めるお手伝いができれば幸いです。

対象読者

  • 前回の記事を読んでCI/CDに興味を持たれた方
  • CI/CDについて学びたい方
  • CircleCIを使ってみたい方
  • CircleCI Ver. 2.1について知りたい方

必要な環境/知識

  • GitHubのアカウント
  • ソフトウェアのテストについての一般的知識
  • アジャイル開発についての一般知識

筆者について

 CircleCIの元開発者で、現在はCircleCI初の海外支社であるCircleCI Japanでさまざまな活動を行っています。

CircleCIについて

 CircleCIは数あるCI/CDサービスの中で代表的なサービスの一つです。CI/CDには主に自分たちで管理するホスティング型とサービス側が運用するクラウド型があるのですが、CircleCIはその両方を提供しています。今回はクラウド型を使って解説していきます。

CircleCIの特徴とメリット

 たくさんCI/CDサービスがある中でCircleCIを選ぶ理由はなんでしょうか? 筆者の意見ではCircleCIには以下のようなメリットがあると思っています。

  • モダンなCI/CDの機能の多くをサポートしている
  • 今後日本語でのサポートや情報が期待できる

 CircleCIは2018年9月を持って古い設定のサポートを終了しました。新しい設定はCircleCI 2.0(以下、2.0)と呼ばれ、設定方法だけではなくアーキテクチャが一新されています。主に以下のような特徴があります。

  • 柔軟かつ明示的なビルドの設定:近年のソフトウェア開発ではさまざまなツールや開発手法が使われるようになり、CI/CDサービスにはそれらに柔軟に対応することが求められています。2.0はユーザーが設定を明示的に書くことで、CI/CDの設定を自由にカスタマイズできるようになりました。
  • Dockerのサポート:Dockerは開発現場で急速に広まっていますが、CI/CDの世界も例外ではありません。2.0ではDockerのネイティブ対応で開発環境や本番環境で使っている同じDockerのイメージを使ってビルドすることができます。
  • ワークフローのサポート:CI/CDでできること(後述するジョブ)はどんどん増えています。そうなると、ジョブを組み合わせたり制御したりしたくなってきますが、これを可能にするのが次回で紹介するワークフローという機能です。名前はサービスにより異なりますが、最新のCI/CDサービスには必ず求められる機能の一つです。

 以上がモダンなCI/CDという視点から見たCircleCIを使うメリットです。そして、副次的なメリットとしてこれから日本語での情報がどんどん増えることが期待されます。2018年の時点では主要なCI/CDサービスはすべて英語圏のサービスなので、サポートや公式ドキュメントは英語で提供されます。対してCircleCIは、2018年6月に日本支社であるCircleCI Japanを設立し、日本のマーケットに対してコミットしていくことを明確にしました。これからは日本語でのサポートの開始や日本のユーザによるコミュニティで知見などがどんどん共有されることが期待されます。

CircleCIを使った開発フロー

 具体的な設定の解説に入る前に、CircleCIがどのように開発フローの中で使われるか説明します。

開発フロー
開発フロー

 ほとんどのCI/CDサービスやツールはGitHubのようなVCSと連携して動きます。開発者が新しい変更をVCSにPushするとWebhookによりCircleCIへ通知が送られ、CircleCIはその変更のリビジョンを使ってビルドを開始します。もしビルドが失敗した場合、開発者は成功するまで修正します。ビルドが成功すれば、開発者はmasterブランチにマージしてもう一度そこでビルドが実行されます。その後はチームや開発体制によって異なりますが、基本的には2通りあります。

  1. masterブランチでビルドが成功したらCI/CDの1サイクルは終了
  2. masterブランチでビルドが成功したら本番・ステージング環境などに自動デプロイ

 前回でも解説しましたが、自動デプロイまでできればさまざまなメリットがありますが、デプロイ環境をきちんと対応させる必要があるのでハードルは低くはありません。今回は基本的にmasterブランチでビルドが成功すれば1サイクル終了という方針で解説していきます。

Hello World

 それではCircleCIを実際に使ってみましょう。入門としてHello Worldを表示させるところから始めることは、CI/CDでも例外ではありません。なお、本記事ではページ数の関係でCircleCIの公式ドキュメントの力を借りながら進めていきます。

 CircleCIを使い始めるためには、まずはプロジェクトを追加する必要があります。詳しい説明は公式ドキュメントにゆずりますが、大まかに以下のような流れになります。

  • http://circleci.com/signup/からサインアップしてGitHubかBitbucketを選択します。
  • サインアップが完了するとビルドするプロジェクトを選びます。
  • CircleCIが各言語にそっておすすめのビルドの設定を表示します。一から設定を書く手間が省けるのでCircleCIを初めて使う方は参考にしてください。
  • "Start Building"というボタンを押せばビルドが開始します。

 問題なくビルドが実行されれば以下の画像のように表示されます。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
設定ファイル:.circleci/config.yml

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
エンジニアのためのCI/CD再入門連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11208 2018/11/29 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  4. 4
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  1. 6
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  2. 7
    Google、社内AIエージェント「Google Agentspace」発表
  3. 8
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  4. 9
    生成AI時代に求められるエンジニア像とは? 2024年CodeZine人気記事ランキング
  5. 10
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説

アクセスランキング

  1. 1
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  4. 4
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  6. 6
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  7. 7
    Google、社内AIエージェント「Google Agentspace」発表
  8. 8
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  9. 9
    生成AI時代に求められるエンジニア像とは? 2024年CodeZine人気記事ランキング
  10. 10
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  8. 8
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  9. 9
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  10. 10
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  4. 4
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  1. 6
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  2. 7
    Google、社内AIエージェント「Google Agentspace」発表
  3. 8
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  4. 9
    生成AI時代に求められるエンジニア像とは? 2024年CodeZine人気記事ランキング
  5. 10
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説

アクセスランキング

  1. 1
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  4. 4
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  6. 6
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  7. 7
    Google、社内AIエージェント「Google Agentspace」発表
  8. 8
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  9. 9
    生成AI時代に求められるエンジニア像とは? 2024年CodeZine人気記事ランキング
  10. 10
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  8. 8
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  9. 9
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  10. 10
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に