WordBench 京都でWordPressプラグインをGitHub経由でSVNにデプロイできるようにしてきた #wbkyoto

今日京都で行われたWordBench京都で、git pushしたらWordPressの公式ディレクトリにデプロイするようにしてきたので、その備忘録です!

デプロイしたのは、有効化したらWordPressにログインしていない場合ログイン画面にリダイレクトされる、「WP view login only」という自作プラグインです。

(同機能のプラグインは既に登録しているのがありますが、こちらのプラグインはXSS脆弱性を潰して最新版でもテスト済のプラグインです。今後機能拡張はないですが、最新版でのテストは続けていく予定です!)

さて、脱線しましたので話を戻します。

このプラグインを公式ディレクトリに登録するときに、初めてコマンドでSVNを触ったのですが、普段Git使いの私にとって「何だこれ二度と触りたくない」と思わされるくらい混乱してしまいました。

元々、TravisCIでGitHub経由でデプロイできることは知っていたんですが、ちょっと敷居が高く感じてできないままで、今回モブプログラミングで実演しないか?とお声がけ頂いて、ようやくTravisCIに手をだすことができました。

1.TravisCI にサインインする

GitHubにログインしていたら、サインインをクリックしたらそのままGitHubと連携するか聞かれる画面になります。そのまま連携してしまいます。

2.GitHubのリポジトリと紐付ける

画面右上くらいにリポジトリを紐付けるボタンがあると思うので、ぽちっとクリックすると、GitHubのリポジトリと紐付けてくれます。
これで最初の準備はOKです!

3.Environment Variables を設定する

TravisCIの右上の「More Options」→「Settings」内の、3つ目くらいにある、Environment Variablesに値を設定します。
設定する値は、宮内さんのtravis2wppluginで書かれている、SVN_USERとSVN_PASSをいれます。
それぞれ、SVN_USERは自分のwordpress.orgのユーザー名、SVN_PASSはwordpress.orgのパスワードを入れてください。

4..travis.yml を作成する

こちらにテストだったり何だりを書いたりするのですが、今回は私はテストは挟まず(まだちんぷんかんぷん)とりあえずデプロイだけの.travis.ymlファイルを作ってます。

5..svnignoreを追加する(重要)

こちらも宮内さんのwp-svnignoreからコマンドをコピーして増やします。
私が初めてデプロイしたとき、.svnignoreファイルが抜けていたので、WordPressのSVNに.gitファイルが上がって一瞬大変なことになりました。(タグでログが残っていたりします)

6.masterにpushする

git push origin master でアップデートしたいファイルをpushしておきます。
(私はこれが抜けていて.svnignoreが適用されず.gitがSVNに入る事態になりました)

7.最後にGitのタグをpushします

git tag バージョン番号 でタグをつけます。
タグをつけたらgit push origin バージョン番号をpushします。

すると、TravisCIでウイーンとテスト(※今回はいれてない)が走って、成功したらデプロイされます!

これだけです!テスト突っ込んでないからではありますが、めちゃくちゃ簡単に公式ディレクトリの情報がアップデートされました!

ちゃんとテストも組み込んでコケたらデプロイされないとかそういうのもいつかできたらいいな、と思います。