##// END OF EJS Templates
errors: introduce a class for remote errors...
errors: introduce a class for remote errors Having an exception for remote errors makes it much easier to exit with the right detailed exit code. Differential Revision: https://phab.mercurial-scm.org/D10466

File last commit:

r43676:e66a3bfc stable
r47738:f9482db1 default
Show More
dockerrpm
60 lines | 1.5 KiB | text/plain | TextLexer
#!/bin/bash -e
BUILDDIR=$(dirname $0)
export ROOTDIR=$(cd $BUILDDIR/../..; pwd)
PLATFORM="$1"
shift # extra params are passed to buildrpm
DOCKERFILE="$PLATFORM"
OS_RELEASE="${PLATFORM//[a-z]/}"
case "$PLATFORM" in
fedora*)
DOCKERFILE="${PLATFORM//[0-9]/}.template"
;;
esac
DOCKER=$($BUILDDIR/hg-docker docker-path)
CONTAINER=hg-docker-$PLATFORM
if [[ -z "${HG_DOCKER_OWN_USER}" ]]; then
DOCKERUID=1000
DOCKERGID=1000
else
DOCKERUID=$(id -u)
DOCKERGID=$(id -g)
fi
$BUILDDIR/hg-docker build \
--build-arg UID=$DOCKERUID \
--build-arg GID=$DOCKERGID \
--build-arg OS_RELEASE=${OS_RELEASE:-latest} \
$BUILDDIR/docker/$DOCKERFILE $CONTAINER
RPMBUILDDIR=$ROOTDIR/packages/$PLATFORM
mkdir -p $RPMBUILDDIR
$ROOTDIR/contrib/packaging/buildrpm --rpmbuilddir $RPMBUILDDIR --prepare $*
DSHARED=/mnt/shared
DBUILDUSER=build
$DOCKER run -e http_proxy -e https_proxy -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \
rpmbuild --define "_topdir $DSHARED" -ba $DSHARED/SPECS/mercurial.spec --clean
$DOCKER run -e http_proxy -e https_proxy -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \
createrepo $DSHARED
cat << EOF > $RPMBUILDDIR/mercurial.repo
# Place this file in /etc/yum.repos.d/mercurial.repo
[mercurial]
name=Mercurial packages for $PLATFORM
# baseurl=file://$RPMBUILDDIR/
baseurl=http://hg.example.com/build/$PLATFORM/
skip_if_unavailable=True
gpgcheck=0
enabled=1
EOF
echo
echo "Build complete - results can be found in $RPMBUILDDIR"