view contrib/packaging/dockerrpm @ 44076:a7c4bcf7018a

phabricator: post revisions in ascending topological order (issue6241) The parent in phabricator ends up being the last revision posted, so sorting the user input into ascending order should be enough to preserve the proper relationships. Differential Revision: https://phab.mercurial-scm.org/D7874
author Matt Harbison <matt_harbison@yahoo.com>
date Tue, 14 Jan 2020 16:37:45 -0500
parents e66a3bfcb19b
children 4713bcf78037
line wrap: on
line source

#!/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"