本文へジャンプします。

ニフティクラウドタイマーを使ってTravis CIのビルドを定期的に実行する

ニフティクラウドタイマーを使ってTravis CIのビルドを定期的に実行する方法です。

個人的に書いた、ニフティクラウドタイマーを使ってTravis CIで定期的にビルドを実行するを少し修正したものです。

タイマーって何?という方はニフティクラウドタイマーのご紹介をご覧ください。


前提条件

この記事の手順を実施するためには下記の項目を満たしている必要があります。

  • GitHubのアカウントを持っている
  • GitHubのPersonal settingsでPersonal access tokenを取得済み(GITHUB_TOKENとする)
  • Travis CIのアカウントを持っている
  • Travis CIで定期的にビルドしたい何かがある(ない場合は適当なプロジェクトをGitHubに作成し、Travis CIに登録してください)
  • ニフティクラウドのアカウントを持っている

手順

手順1: Travis CIのAccess TokenをGitHubのPersonal access tokenを使って取得する

下記のコマンドを実行し、Travis CIのAccess Tokenを取得します。GITHUB_TOKENの部分には、ご自身のGitHubのPersonal access tokenを入れてください。

curl -s -X POST -H 'Content-Type: application/json' -H 'Accept: application/vnd.travis-ci.2+json' https://api.travis-ci.org/auth/github -d '{"github_token":"GITHUB_TOKEN"}'

成功すると、下記のようなレスポンスが返ってきます。

{"access_token":"TRAVIS_TOKEN"}

TRAVIS_TOKENの部分にTravis CIのAccess Tokenが入っているので、メモしておきます。

Travis CIのAPI認証について、詳しくは公式ドキュメントをご参照ください。

手順2: curlで実行してみる

ここで、APIの実行が可能か確認するため、下記のようにcurlでAPIを叩いてみます。

{TRAVIS_TOKEN}に先ほど取得したTravis CIのAccess Tokenを、{ACCOUNT}にアカウント名、{REPOSITORY}にリポジトリ名を入れてください。

body='{
"request": {
  "branch":"master"
}}'

curl -s -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Travis-API-Version: 3" \
  -H "Authorization: token {TRAVIS_TOKEN}" \
  -d "$body" \
  https://api.travis-ci.org/repo/{ACCOUNT}%2F{REPOSITORY}/requests

成功すると、ビルドが実行されます。

Travis CIのAPIからのビルドの実行について、詳しくは公式ドキュメントをご覧ください。

手順3: ニフティクラウドタイマーの設定

設定は簡単で、前項でcurlで実行した、HTTPのリクエストの内容を設定するだけです。

1.ニフティクラウドにログインし、左上のメニューから、タイマーを選択します。

サービスメニュー

2.「タイマー作成」ボタンをクリックします。

3.タイマー名とスケジュールを設定し、「詳細設定へ」をクリックします。メモも設定できます。

タイマー作成 01 基本設定

タイプはHTTPにします。ほかのタイプにはサーバー起動、停止、再起動、削除、設定変更、イメージとして保存、スナップショット取得、MQTT、Fluentdがあります。

タイマー作成 02 詳細設定

HTTPを選択するとURL、メソッド、ヘッダー、ボディが設定できるようになるので、下記のように設定し、「通知設定へ」をクリックします。{TRAVIS_TOKEN}にTravis CIのAccess Tokenを、{ACCOUNT}にアカウント名、{REPOSITORY}にリポジトリ名を入れてください。

  • URL

    https://api.travis-ci.org/repo/{ACCOUNT}%2F{REPOSITORY}/requests
    
  • メソッド

    POST
    
  • ヘッダー

    Content-Type: application/json
    Accept: application/json
    Travis-API-Version: 3
    Authorization: token {TRAVIS_TOKEN}
    
  • ボディ

    {
      "request": {
        "branch":"master"
      }}
    

通知の設定をします。

タイマー作成 03 通知設定

確認して、「作成する」をクリックします。

これで、設定は完了です。定期的にビルドが実行され、実行の履歴を作成したタイマーの実行履歴タブで確認できます。

実例: Travis CIとニフティクラウドタイマーを使って、毎日最新のCoreOSをインポートする

最後に、実際にこの仕組みを使ってCoreOSのインポートを定期的に実行している例をご紹介します。

元々Jenkinsサーバーを立てて定期的に実行していたのですが、タイマーを使うことでサーバーなしで実行できるようになりました。

実行しているスクリプトや.travis.ymlGitHubに置いてあります。

中身を見るとわかるのですが、ニフティクラウド CLIを使っているため、ニフティクラウド上の大抵の操作はこの仕組みを用いて定期的に実行できるということがわかります。

ビルドの様子もTravis CIで見られます。

新しいバージョンが出て、インポートされたときのみ成功と判定しています。(成功しているビルド

このように定期的に実行している作業をニフティクラウドタイマーに置き換えることで、サーバーの運用から解放され、エンジニアの負担を少し軽くすることができます。

いろいろなことに使えそうなので、今後も何か思いついたときにはブログに書きたいと思います。

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

福澤真

福澤真

ニフティクラウドのコンパネ開発、運用をしています。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。

世良迪夫

世良迪夫

ニフティクラウドのRDBなどを担当しています