そこで、Composer を実行するチェックアウト後のフックをサーバーにセットアップしました。
#!/bin/sh
# Composer Git Checkout Hook
PROJECT_NAME=example.com
cd /home/www/$PROJECT_NAME/htdocs
unset GIT_DIR
# Process composer.json if one exists.
if [ -f composer.json ]
then
echo "Processing Composer"
# Run the composer install
composer.phar install
fi
展開すると動作します。ただし、新しいサーバーであり、cURL モジュールを有効にするのを忘れていたため、インストールは失敗しますが、プッシュは受け入れられます。
$ git push deploy master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 348 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Processing Composer
remote: Loading composer repositories with package information
remote: Installing dependencies from lock file
remote: Your requirements could not be resolved to an installable set of packages.
remote:
remote: Problem 1
remote: - Installation request for facebook/php-sdk dev-master -> satisfiable by facebook/php-sdk dev-master.
remote: - facebook/php-sdk dev-master requires ext-curl * -> the requested PHP extension curl is missing from your system.
remote:
To ssh://adam@my-server.net/home/www/example.com/git
0fa8a61..afa63ae master -> master
Composer のインストールのステータスを取得して終了し、リモート リポジトリがプッシュを拒否するようにするにはどうすればよいですか?