BLOGカルテットコミュニケーションズ開発部ブログこの記事は公開されてから1年以上経過しています。情報が古い可能性がありますのでご注意ください。基一Tweetはじめに以前の記事で、CLIツールをPharファイルで作成する手順を簡単に紹介しました。今回はPharファイルの作成と配布までをCircleCIで自動化する手順を紹介したいと思います。Pharファイルを生成処理をbuildコマンド、GitHubへのリリース処理をreleaseコマンドとして、Composerのscriptsを利用して実装したいと思います。最後にそれらをCircleCIから呼び出すような設定ファイル(.circleci/config.yml)を作成したいと思います。buildコマンドの実装Pharファイルを生成する処理を、buildコマンドとしてまとめます。composer.jsonBoxを利用してPharファイルの作成をcomposer-scriptsにbuildコマンドとして作成します。],...box.json上記のbuildコマンドは、distディレクトリにPharファイルが作成されることを期待した内容になっていますので、以前のブログ記事で作成したbox.jsonの内容を以下のように修正します。}releaseコマンドの実装PharファイルをGitHubリリースページへアップロードする処理を、releaseコマンドとしてまとめます。composer.jsonリリースの前には、buildコマンドが実行されるように設定し、必ずPharファイルが作成してある状態になるようにしてあります。その後、ghrというツールを使って、ビルドしたPharファイルをGitHubのリリースページにアップロードしています。]...ghr簡単にGitHubへリリースするためのGolang製CLIツールです。タグとバイナリファイルが含まれるディレクトリを指定するだけで、GitHubへリリースをしてくれます。今回は構成を簡単にする為にbin/ghrにバイナリ配置し、Gitリポジトリにも含めています。バージョン番号を表示させて、cutコマンドでバージョン番号部分だけ抜き出して、GitHubのタグとしてghrに渡すようにしています。これにより、PHPのソースコードを修正するだけで、タグの追加からリリースページの作成まで、自動的に行なってくれるようになります。ちなみにghrはデフォルトで、既に存在するタグに対する更新はエラーになりますので、一度リリースされたバージョンが上書きされるようなことはありません。これでバージョン番号を更新し忘れても、安心ですね。CircleCIの設定ファイル今回は、qcmnagai/hello-phpというリポジトリで作成しましたので、以下のようになりました。mastermasterブランチへプッシュされた時だけ、releaseジョブが走るようになっています。releaseコマンドでまとめたのでスッキリしていますね。おわりにこのようにしておけば、GitHubのmasterブランチへマージしたタイミングで、ビルドからGitHubのリリースページへのアップロードをCircleCIが自動でやってくれます。利用する際には、GitHubのリリースページからPharファイルダウンロードしてそのまま実行することが出来るようになり、とても便利でオススメです。TtskchTheme。