素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

IT

投稿日: 2018年3月15日
最終更新日:

【全自動雑用おいたん】Githubへのpushを受け取ってJenkinsのJobを実行してみよう

ペヤング ソースやきそば 120g×18個

created by Rinker
ペヤング
¥2,600 (2024/04/03 21:42:16時点 Amazon調べ-詳細)

とりあえず保存食として買っておけば間違いなし!

モンスターエナジー 355ml×24本 [エナジードリンク]

created by Rinker
モンスター
¥4,748 (2024/04/03 21:33:15時点 Amazon調べ-詳細)

脳を活性化させるにはこれ!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK

created by Rinker
Bauhutte(バウヒュッテ)
¥14,935 (2024/04/03 21:42:10時点 Amazon調べ-詳細)

メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!

BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール

created by Rinker
BANDAI SPIRITS(バンダイ スピリッツ)
¥7,500 (2024/04/03 21:42:14時点 Amazon調べ-詳細)

もう一人の僕を呼び覚ませ!!

MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド

created by Rinker
MOFT
¥2,880 (2024/04/03 21:42:18時点 Amazon調べ-詳細)

Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!

サンディスク microSD 128GB

スマホからSwitchまで使える大容量MicroSDカード!

スポンサーリンク

336×280




Jenkinsで自動化

毎回同じ作業をするのがつらたん。。。

システム開発等をしていると、Githubにソースをpushまたはmergeしたタイミングで共通の処理を行いたい、というケースが出てくると思います。
ソースをビルドしたり特定のディレクトリに移動したり、Slackに通知を飛ばしたり…etc

そんな時にJenkinsを用いれば共通作業を自動化することが可能です。

Jenkins?

JenkinsとはCIツールの一つです。
CIツールとは、Continuous Integration Tool(継続的インテグレーションツール)という意味の略で、オープンソースのソフトウェアです。

継続的インテグレーションツール?

また小難しい単語が出てきましたね。orz

継続的インテグレーションとは、システム開発において、ソースのビルドやユニットテストを都度繰り返し行なうことによって、システムの問題早期発見し、開発の効率化・品質向上に繋げるための手法の事を指します。
今回はこの作業をJenkinsというソフトウェアを利用することで自動化を図ることが可能になります。

今回は、Githubpush操作をJenkins側で認識し、特定のジョブを実行する、という部分までの手順をご紹介致します。

手順

前提

Point

  • Git関連のJenkinsプラグインインストール済み(Git, Github)
  • JenkinsユーザーのSSHキーは設定して接続確認済み

【セキュリティ向上】SSHキーを作成してMacからGithubにSSH接続してみよう

Jenkins側の設定

まずはJenkins側の設定を行いましょう。

GithubからのWebhook実行したいJobを選択します。

次にソースコード管理セクションにて、以下の作業を行い、認証情報を新たに設定するので追加>Jenkinsを選択します。

Point

  • Gitにチェックを入れる
  • 対象のリポジトリを入力
  • ビルドするブランチを指定
  • ビルドするブランチを指定
  • リポジトリをチェックアウトするディレクトリを指定

認証情報の追加ダイアログが表示されたら、以下の項目の入力を行った上で追加ボタンをクリックします。

Point

  • 種類をSSHユーザー名と秘密鍵
  • スコープをシステム
  • ユーザーをSSHキーを作成したユーザー名
  • 秘密鍵をJenkinsマスター上のファイルからにチェックを入れ、サーバー上の秘密鍵までのパスを入力


そうすると、上記で登録したユーザー名の認証情報が選択された状態になります。

次にさらに下部GitHub hook trigger for GITScm pollingにチェックを入れ、サンプルとしてシェルスクリプトの欄に以下のコマンドを入力して保存ボタンをクリックしましょう。

Github側の設定

次にGithub側JenkinsへのWebhook通信の設定を行いましょう。
Webhookを行いたいリポジトリのページを開き、Settings>Webhooks>Add webhookボタンをクリックします。
※リポジトリに対して管理者権限が無いとSettingsメニューが出ません

Payload URL以下を追記してください。

Content typeapplication/jsonを指定して他はデフォルトのままAdd webhookボタンをクリックします。

サーバー側の設定

最後にAWSのEC2等を利用していて、セキュリティグループでIP制限をかけている場合は、Githubからのアクセスを許可する必要があります。
コチラにアクセスし、hooksとなっている部分のIPを全て許可しましょう。

スポンサーリンク

336×280




確認

では、実際にpushを行ってJobが実行されるか確認してみましょう。
まずはGithubにpushをしてみます。

お、、、

おぉ〜!!!正常にpush操作を検知してJenkinsのJobが実行されましたね♪

Github側のWebhookの履歴にも成功が追加されています。

終わりに

やや設定が複雑ですが、最初に設定さえしてしまえば後々とても幸せになります。

JenkinsはCIツールとしてとても普及していて、他にも様々なサービス連携を設定する事が出来てとても便利なので、ぜひ使いこなせるようになりましょう。

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , ,

blogenist

Author: blogenist

関連記事

YouTubeも見てね♪

お名前.comサイドバー