質問: githubへの同期デプロイができるAutomatic deploysで、自動ブランチが失敗するので手動ブランチを実行したところ、 ``` -----> Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/php.tgz More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure ! Push failed ``` のエラーが出てgithubへのpushに失敗しました。 エラーの通り、試しに「https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/php.tgz」をビルドパックにセットしたところ、ローカルからherokuへのpushでも問題が発生しました。 ``` remote: -----> Checking for additional extensions to install... remote: -----> PHP app detected remote: ln: failed to create symbolic link ‘/app/.heroku/php/php’: File exists remote: ! Push rejected, failed to compile PHP app. remote: remote: ! Push failed ``` ビルドパックを外してビルドをかけたら、ローカルからherokuへのpushは通るようになりましたが、 herokuからgithubへのデプロイに失敗するところに戻りました。 エラーメッセージなどで検索し情報を集めていましたが、どうしても目的の情報は見つかりませんでした。 似たような問題は見つかりました。 が、rubyの情報なのでどうしようもありませんでした......。 「 /app/.heroku/php/php 」 のようにphpディレクトリが重なってるところに何か問題がある気がするんですが......(情報収集した中には、「buildpacksに問題があるんじゃないの?別のbuildpacks使ったら?」という言葉もありました。 同様の問題を解決したことのある方はいらっしゃいますでしょうか・・・?
回答: 自己解決しました。 herokuに搭載されている「Automatic deploys」機能は、herokuからgithubにリポジトリを同期する機能(ローカルからherokuにpushした内容がherokuの機能によってgithubにも反映される)ではなく、 **githubで行われた変更がherokuに反映される機能**でした。考えていたものとは逆でした......。**双方同期の機能ではない**ということになります。 github上に空のindex.phpを置いたところ、なんのエラーも無くAutomatic deploysに成功し、空のphpがheroku上にデプロイされました。 Automatic deploys機能について、「heroku上で行われた変更がわざわざgithubも一緒にローカルのリモートリポジトリに登録せずともheroku上からGithubにも自動反映されてくれる」ものと勘違いしていたのが根本の原因でした。 逆に考えれば、ローカルから接続するリモートリポジトリをgithubだけにしてしまえばGithubからheroku上に自動反映されてインターネットのデータ消費量も1回分のコミットで済む(モバイル回線なんです...)ので、当初の「Githubで管理したい」目的は達成できそうです。