IBM Cloud CI/CD環境に個人のGitHubリポジトリを設定する

Taiji
7 min readOct 19, 2019

--

IBM Cloudでは、他のクラウドサービス同様、継続的デリバリを容易に可能にするためのツールチェーンが用意されています。
デフォルトではこのツールチェーンに設定されるリポジトリは、自分がIBM Cloud上に作成したアプリケーションと同じドメインにあるGitリポジトリが割り当てられます。これを、個人所有のオープンなGitHubリポジトリを設定する手順を解説します。

これにより、個人リポジトリ(GitHub)へコミットしたアプリをそのままIBM Cloudへデプロイさせる事ができます。

0. 最初に

今回は解説用に、IBM Cloud上にCloud FoundryのNode.jsアプリを作成しました。デフォルトで作成された状態なので、画面にHello Worldと表示されるアプリになります。

初期作成状態のアプリ

これを、何かに変更しましょう。

変更するためのNode.jsアプリを自分の個人用GitHubにリポジトリとして作っておきます。
変更後のアプリは今回は、IBM CloudでCFアプリを作成した際のチュートリアルで出てくるこちらを使いました。

一点注意があります。このGitHubリポジトリから持ってきたままの状態だとNode.jsのバージョンが6.xなので現在のIBM Cloud CFのNode.jsランタイムではサポートしていません。ですのでそのままデプロイしようとするとエラーになるはずです。

package.jsonの中身を書き換えておきましょう。
書き換える場所は、engine要素でバージョンを指定している部分です。

FROM:
“engines”: {
“node”: “6.x”
}
TO:
“engines”: {
“node”: “8.x”
}

package.jsonを修正しましたら、ローカルで動くことを確認しておいて下さい。

npm installnpm start

確認できたら、自分の個人用GitHubリポジトリとしてアップロードしておいてください。このリポジトリが、IBM CloudのCI/CDツールチェーンの変更後のリポジトリとして使われます。

1. CFアプリを作成

IBM Cloudにログインし、カタログからCloud Foundryを選択します。検索窓でキーワードで絞り込むと見つけやすいです。

パブリック・アプリケーションを選択して下さい。[作成]ボタンをクリックします。

インターネット上で一意となるアプリ名を付けて[作成]ボタンをクリックします。

2. 継続的デリバリーの有効化

アプリが作成されたら[概要]メニューから継続的デリバリーエリアの[有効化]ボタンをクリックしてツールチェーンを有効化します。

ツールチェーンの作成画面ではデフォルトのまま作成します。Delivery PipelineのAPIキー生成を忘れないようにしてください。

3. リポジトリの変更

ツールチェーンが作成されると、自動で割り当てられたGitを削除しましょう。Gitのタイルを削除すると一緒にIssuesのタイルも削除されます。

きれいに削除されました。右上の[ツールの追加]ボタンをクリックします。

GitHubを選択します。

統合の構成画面にて自分のGitHubアカウントと連携するために[認証]ボタンをクリックします。

自分のGitHubアカウントへログインして認証を完了させます。

リポジトリータイプは"既存"を選択し、リポジトリーURLに最初に作成した自分のリポジトリのURLを設定します。
[統合の作成]ボタンをクリックします。

4. 変更後のリポジトリ上のアプリのデプロイ

Delivery Pipelineのタイルを選択します。

Buildステージの構成を変更します。[ステージの構成]メニューを選択します。

Gitリポジトリーをプルダウンから、前の手順で作成した自分の個人リポジトリを選択し、[保存]ボタンをクリックします。

Build Stageを実行します。[▶]ボタンをクリックします。

問題がなければステージが成功し、ステータスが緑色に変わります。続いてDeploy Stageを実行します。[▶]ボタンをクリックします。

こちらも同様に、問題がなければステータスが緑色に変わります。そのまま[コンソールの表示]を選択します。

5. アプリの確認

アプリURLにアクセスします。

初期状態のHello World画面から、ゲストブックサンプルアプリに変更しました。これで無事、個人リポジトリから持ってきたアプリがデプロイされた事が確認できました。

まとめ

いかがでしたでしょうか?
通常CI/CDを実現しようと思ったら、任意のリポジトリを使いたいケースが多いと思います。IBM Cloudのツールチェーンもスクラッチから組み立てればリポジトリは好きなものを割り当てれば良いのですが、カタログのランタイムからアプリ環境を作るケースでは、このようにちょっと手間をかけて上げる必要があります。
手順自体はそんなに難しくないので、試してみてはいかがでしょうか。
ではでは!

--

--

Taiji
Taiji

Written by Taiji

Datadog Senior Developer Advocate | Ex-OutSystems Dev Community Advocate | Ex-IBM Dev Advocate | Microsoft MVP | 筑波大学、名城大学非常勤講師 | 記事は個人の見解であり、所属する組織とは関係ありません。

No responses yet