GithubとTravis CIを使った継続的なタグ付きリリース

昨年まで和歌山県に住んでいた関係で、和歌山県のITエンジニアコミュニティWackerに参加しています。5/22に開催された#2ミーティングにおいて、GithubとTravis CIを活用したパッケージリリースの方法について話題提供を行いました。


masterやその他の開発に用いるブランチには、コンパイル後のファイルや各種の外部ライブラリなどは含めたくありませんが、リリース用のブランチ(タグ)には逆にソース類を含めたくありません。単純にリリース用のブランチ(タグ)を切っただけでは、この状態は実現できません。このスライドでは、Travis CIを使い、リポジトリを私にとって望ましい状態に加工するための方法を概説しています。

Travis CIで作られるコンテナは、ネットワークに接続されたクライアントノードとして動き、また内部で任意のスクリプトを実行できるため、様々な作業を自動化できます。今回はTravis CIでパッケージのビルドを実行し、リリース用のパッケージを完成させた後に、これをGithubに強制的にpushすることで目的を達成しました。

ただし、この方法では、v1 -> v2 -> ..とタグを付けて順次リリースを行っていった場合、これらの間が正しいcommitで結ばれた状態にはなりません。Travis CI側で、git pullなどを使って、正しい手順を踏んでリポジトリの操作を行うことで、リポジトリはより好ましい状態になるのではと考えています。

このビルド環境の作成にあたっては、以下のサイトで紹介されていたコンテンツを参考にしました。

WordPressのテーマをTravis CIでビルドする。

また、以下のWordPressプラグインの開発に採用しています。

Inherit Theme Mods@Github

https://fuc.wordpress.org/plugins/inherit-theme-mods/