こんにちは、Juntechです。
これから2回に分けて、WordPressの自作テーマをリリースする仕組みを構築したいと思います。
今回はJenkinsとGitを使って、Jenkinsローカルに最新のリソースを取得する編です。

Jenkinsについてはこちら

【自動化の親友】MacにJenkinsを入れる【結局GUIが最強】


Gitについてはこちら

【テーマ作成に挑戦する全ての方へ】Gitって知ってる? 〜その1【エンジニアは見なくていいヨ】


をご覧ください。
それでは、早速やっていきます。

スキーム設計

まずはどういったスキームでリリースをするか設計してみましょう。
今回はこんな感じのシンプルな仕組みにしてみようと思います。

1. ローカルで加えた変更をコミット
テーマの修正はVisual Studio Codeという高機能テキストエディタを使って行います。
拡張機能を入れることで、GitHubへのCommit/Pushもエディタ内で行うことができます。
2. 最新のソースを取得
Jenkinsで、GitHubから自分のワークスペースに最新のファイルを取得します。
3. AutoHacksのレンタルサーバにファイルをコピー
Jenkinsで、リモートサーバに最新のファイルをコピーします。
4. AutoHacksへ反映
ファイルがコピーされると同時に、最新の変更が反映されます。

まずはJenkinsからWordPressサーバに接続し、ビルドを実行してみましょう!

Jenkinsでジョブを作成する

新規ジョブの作成

Jenkinsを起動し、アクセスします。

アクセスできたら、「新しいジョブ」を作成しましょう。

今回はフリースタイル・プロジェクトで作ってみます。

General設定


説明と表示用プロジェクト名だけ入力しておきます。

ソースコード管理

今回はGitHubから最新ソースを取得したいため、
GitHubのリポジトリURLと認証情報、ブランチ名を設定します。

認証情報は「追加」から設定することができます。

ビルド・トリガ

今回は、毎日午前3時に定期リリースさせちゃいます。

本当はGitでのマージ起因でリリースしたりもできるのですが、
その辺の工夫はおいおい加えていこうと思います。
もちろん手動実行することで即時リリースもできます。

ビルド環境


変に古いソースや手動で入れた変更がリリースされちゃったりしても困るので、
毎回ワークスペースをクリーンアップしてからビルドするようにしておきます。

ビルド

さて、いよいよビルドの中身です。
今回はシェルを使って、Jenkinsからリモートサーバへファイルのコピーを行います。

ちょっと内容が込み入っているので、
とりあえずGitから取得したファイルをリストアップできるようにしましょう。
下記コマンドを使います。

#!/bin/bash

pwd
ls -l

これは今自分がいる位置(絶対パス)と、
そこにあるファイルをリストアップするコマンドです。
何事もまず現状を知ることが大事なので、
とりあえずこれで動かしてみることにしましょう。

ビルド後の処理

今回は拡張E-mail通知を使ってみましょう。

↑らへんの設定はそのままにしておいて、「Advanced Settings…」を開き、Triggersを設定しましょう。

今回は成功時・失敗時ともにメールを送るようにします。
SendToのところで「Receipient List」を選びつつ、
自分のアドレスやメール件名・本文を設定しましょう。
(成功時)

(失敗時)

ここまでできたら一度ビルド設定を保存しましょう。

なお、拡張E-mail通知を使うためには、JenkinsにSMTPの設定を入れる必要があります。
「Jenkinsの管理」->「システムの設定」から「拡張E-mail通知
」欄に進み、SMTPの設定をしましょう。
Gmailを使っている方であれば、「SMTPサーバー」はsmtp.gmail.com
「ユーザー名」「パスワード」には自分のGoogleアカウントを入れれば使えます。

ビルド実行

設定が終わったら、「ビルド実行」してみます。

無事ビルドが実行できました!

「コンソール出力」も見てみましょう。

下の方に、現在のパスやファイルリストが表示されていますね。
ちゃんとGitHubからファイルを取得できているようです!

メールも届いていていい感じです。


今回はここまで。
次回はいよいよリモートサーバに接続して、本番リリースを実装します。