mirror of
https://github.com/apache/httpd.git
synced 2025-07-25 17:01:22 +00:00
CI: Use the git commit hash to determine the revision of APR/APR-util
from the github repos, and build exactly that, rather than relying on SVN: - works if apr/apr-util moves to a r/w git in the future - removes a race for branches where the git revision tested could be different to the SVN revision retrieved before Github: closes #528 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1924958 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@ -24,7 +24,6 @@ fi
|
|||||||
function install_apx() {
|
function install_apx() {
|
||||||
local name=$1
|
local name=$1
|
||||||
local version=$2
|
local version=$2
|
||||||
local root=https://svn.apache.org/repos/asf/apr/${name}
|
|
||||||
local prefix=${HOME}/root/${name}-${version}
|
local prefix=${HOME}/root/${name}-${version}
|
||||||
local build=${HOME}/build/${name}-${version}
|
local build=${HOME}/build/${name}-${version}
|
||||||
local giturl=https://github.com/apache/${name}.git
|
local giturl=https://github.com/apache/${name}.git
|
||||||
@ -32,30 +31,38 @@ function install_apx() {
|
|||||||
local buildconf=$4
|
local buildconf=$4
|
||||||
|
|
||||||
case $version in
|
case $version in
|
||||||
trunk) url=${root}/trunk ;;
|
trunk|*.x) ref=refs/heads/${version} ;;
|
||||||
*.x) url=${root}/branches/${version} ;;
|
*) ref=refs/tags/${version} ;;
|
||||||
*) url=${root}/tags/${version} ;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
local revision=`svn info --show-item last-changed-revision ${url}`
|
# Fetch the object ID (hash) of latest commit
|
||||||
|
local commit=`git ls-remote ${giturl} ${ref} | cut -f1`
|
||||||
|
if test -z "$commit"; then
|
||||||
|
: Could not determine latest commit hash for ${ref} in ${giturl} - check branch is valid?
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Blow away the cached install root if the cached install is stale
|
# Blow away the cached install root if the cached install is stale
|
||||||
# or doesn't match the expected configuration.
|
# or doesn't match the expected configuration.
|
||||||
grep -q "${version} ${revision} ${config} CC=$CC" ${HOME}/root/.key-${name} || rm -rf ${prefix}
|
grep -q "${version} ${commit} ${config} CC=$CC" ${HOME}/root/.key-${name} || rm -rf ${prefix}
|
||||||
|
|
||||||
if test -d ${prefix}; then
|
if test -d ${prefix}; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git clone -q --depth=1 --branch=$version ${giturl} ${build}
|
git init -q ${build}
|
||||||
pushd $build
|
pushd $build
|
||||||
|
# Clone and checkout the commit identified above.
|
||||||
|
git remote add origin ${giturl}
|
||||||
|
git fetch -q --depth=1 origin ${commit}
|
||||||
|
git checkout ${commit}
|
||||||
./buildconf ${buildconf}
|
./buildconf ${buildconf}
|
||||||
./configure --prefix=${prefix} ${config}
|
./configure --prefix=${prefix} ${config}
|
||||||
make -j2
|
make -j2
|
||||||
make install
|
make install
|
||||||
popd
|
popd
|
||||||
|
|
||||||
echo ${version} ${revision} "${config}" "CC=${CC}" > ${HOME}/root/.key-${name}
|
echo ${version} ${commit} "${config}" "CC=${CC}" > ${HOME}/root/.key-${name}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Allow to load $HOME/build/apache/httpd/.gdbinit
|
# Allow to load $HOME/build/apache/httpd/.gdbinit
|
||||||
|
Reference in New Issue
Block a user