forked from zendframework/zendframework
-
Notifications
You must be signed in to change notification settings - Fork 0
Composer caching proposal
Ben Scholzen edited this page May 8, 2013
·
1 revision
- Speed up loading of dependencies for travis builds
- Keep dependencies up-to-date
Integrate a dependency loader script like this one: https://github.com/Bacon/BaconUser/blob/master/.travis/load-vendor.sh
Have a cron job running on the server storing the cache files ever hour (or every 12/24 hours):
#!/bin/bash
branches=( master develop )
workDir=/some/path
for branch in ${branches[@]}
do
if [ -d "$workDir/zf2.git" ]
then
cd "$workDir/zf2.git"
git fetch
git checkout $branch
git pull origin $branch
else
git clone git://github.com/zendframework/zf2.git "$workDir/zf2.git"
cd "$workDir/zf2.git"
git checkout $branch
fi
if [ -f composer.lock ]
then
composer update --dev --prefer-source
else
composer install --dev --prefer-source
fi
jsonChecksum=$(sha1sum composer.json | cut -d' ' -f1)
lockChecksum=$(sha1sum composer.lock | cut -d' ' -f1)
if [ -f "$workDir/$jsonChecksum.cache" ]
then
prevLockChechsum=$(cat "$workDir/$jsonChecksum.cache")
else:
prevLockChecksum=""
fi
if [ ! $lockChecksum -eq $prevLockChecksum ]
then
tar -xjf "$workDir/vendor.tgz" vendor
mv -f "$workDir/vendor.tgz" "$workDir/vendor-$jsonChecksum.tgz"
echo $lockChecksum > "$workDir/$jsonChecksum.cache"
fi
done