75 lines
1.5 KiB
Bash
75 lines
1.5 KiB
Bash
|
#!/bin/bash
|
||
|
set -e
|
||
|
|
||
|
URL="git@github.com:git/git.git"
|
||
|
VERSIONS="v1.6.3 v1.6.6 v1.7.1 v1.7.5 v1.7.9 v1.8.1"
|
||
|
DIRNAME="git-builds"
|
||
|
|
||
|
if [ ! -d "$DIRNAME" ]; then
|
||
|
mkdir - "$DIRNAME"
|
||
|
fi
|
||
|
|
||
|
cd "$DIRNAME"
|
||
|
|
||
|
# remote repository
|
||
|
if [ -d cache ]; then
|
||
|
echo "- update from github..."
|
||
|
cd cache
|
||
|
git fetch -q
|
||
|
cd ..
|
||
|
else
|
||
|
echo "- clone from github..."
|
||
|
git clone "$URL" cache -q
|
||
|
fi
|
||
|
|
||
|
# build
|
||
|
for VERSION in $VERSIONS; do
|
||
|
|
||
|
echo "- build $VERSION"
|
||
|
LOGFILE="build.$VERSION.log"
|
||
|
LOCKFILE="build.$VERSION.lock"
|
||
|
|
||
|
if [ -f "$LOCKFILE" ]; then
|
||
|
echo " - lock present, destroy build..."
|
||
|
rm -rf "$VERSION" "build.$VERSION.log"
|
||
|
fi
|
||
|
|
||
|
if [ -d "$VERSION" ]; then
|
||
|
echo " - already built, skipping..."
|
||
|
continue
|
||
|
fi
|
||
|
|
||
|
touch "$LOCKFILE"
|
||
|
|
||
|
echo " - log: $LOGFILE"
|
||
|
touch "$LOGFILE"
|
||
|
mkdir "$VERSION"
|
||
|
echo " - clone repository"
|
||
|
git clone -s cache "$VERSION/source" -q
|
||
|
echo " - checkout version"
|
||
|
cd "$VERSION/source"
|
||
|
git checkout "$VERSION" -q
|
||
|
|
||
|
mkdir ../build
|
||
|
PREFIX="`readlink -f ../build`"
|
||
|
|
||
|
echo " - build..."
|
||
|
autoconf >> "../../$LOGFILE" 2>&1
|
||
|
./configure --prefix="$PREFIX" >> "../../$LOGFILE" 2>&1
|
||
|
make all >> "../../$LOGFILE" 2>&1
|
||
|
make install >> "../../$LOGFILE" 2>&1
|
||
|
echo " - build ok"
|
||
|
cd ../..
|
||
|
rm "$LOCKFILE"
|
||
|
done
|
||
|
cd ..
|
||
|
|
||
|
# test
|
||
|
echo ""
|
||
|
for VERSION in $VERSIONS; do
|
||
|
echo "- test $VERSION"
|
||
|
GIT_COMMAND="`readlink -f $DIRNAME/$VERSION/build/bin/git`"
|
||
|
echo " - command: $GIT_COMMAND"
|
||
|
GIT_COMMAND="$GIT_COMMAND" phpunit || true
|
||
|
done
|