author | Gregory Szorc <gregory.szorc@gmail.com> |
Sat, 26 Jan 2019 13:39:18 -0800 | |
changeset 41408 | a43acfa2b76d |
parent 41234 | 4c0d4bbdc395 |
child 43355 | 433cdcb37321 |
permissions | -rwxr-xr-x |
22438
f5abb231b80a
dockerrpm: check that docker is running correctly before building
Mads Kiilerich <madski@unity3d.com>
parents:
21642
diff
changeset
|
1 |
#!/bin/bash -e |
21255
62a2749895e4
build: initial support for in-tree autobuilding recipes
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
2 |
|
62a2749895e4
build: initial support for in-tree autobuilding recipes
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 |
BUILDDIR=$(dirname $0) |
38004
1868db0d1515
packaging: move some docker scripts into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33597
diff
changeset
|
4 |
export ROOTDIR=$(cd $BUILDDIR/../..; pwd) |
21255
62a2749895e4
build: initial support for in-tree autobuilding recipes
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
5 |
|
22439
d2a00ced3cce
dockerrpm: better handling of specification of docker name
Mads Kiilerich <madski@unity3d.com>
parents:
22438
diff
changeset
|
6 |
PLATFORM="$1" |
22443 | 7 |
shift # extra params are passed to buildrpm |
22439
d2a00ced3cce
dockerrpm: better handling of specification of docker name
Mads Kiilerich <madski@unity3d.com>
parents:
22438
diff
changeset
|
8 |
|
38458
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38457
diff
changeset
|
9 |
DOCKER=$($BUILDDIR/hg-docker docker-path) |
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38457
diff
changeset
|
10 |
|
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38457
diff
changeset
|
11 |
CONTAINER=hg-docker-$PLATFORM |
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38457
diff
changeset
|
12 |
|
41234
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
13 |
if [[ -z "${HG_DOCKER_OWN_USER}" ]]; then |
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
14 |
DOCKERUID=1000 |
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
15 |
DOCKERGID=1000 |
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
16 |
else |
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
17 |
DOCKERUID=$(id -u) |
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
18 |
DOCKERGID=$(id -g) |
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
19 |
fi |
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
20 |
|
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
21 |
$BUILDDIR/hg-docker build --build-arg UID=$DOCKERUID --build-arg GID=$DOCKERGID $BUILDDIR/docker/$PLATFORM $CONTAINER |
22440
cf7b5c011737
dockerrpm: run docker build process as the current user, not as root
Mads Kiilerich <madski@unity3d.com>
parents:
22439
diff
changeset
|
22 |
|
22441
bb9a06d14857
dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents:
22440
diff
changeset
|
23 |
RPMBUILDDIR=$ROOTDIR/packages/$PLATFORM |
38013
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38008
diff
changeset
|
24 |
$ROOTDIR/contrib/packaging/buildrpm --rpmbuilddir $RPMBUILDDIR --prepare $* |
22441
bb9a06d14857
dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents:
22440
diff
changeset
|
25 |
|
bb9a06d14857
dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents:
22440
diff
changeset
|
26 |
DSHARED=/mnt/shared |
38457
11eda1f1b6e7
packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38013
diff
changeset
|
27 |
DBUILDUSER=build |
11eda1f1b6e7
packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38013
diff
changeset
|
28 |
|
33597
a3ac1ea611ce
docker: pass proxy arguments to docker process
Mathias De Maré <mathias.de_mare@nokia.com>
parents:
27788
diff
changeset
|
29 |
$DOCKER run -e http_proxy -e https_proxy -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \ |
22441
bb9a06d14857
dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents:
22440
diff
changeset
|
30 |
rpmbuild --define "_topdir $DSHARED" -ba $DSHARED/SPECS/mercurial.spec --clean |
22444
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
31 |
|
33597
a3ac1ea611ce
docker: pass proxy arguments to docker process
Mathias De Maré <mathias.de_mare@nokia.com>
parents:
27788
diff
changeset
|
32 |
$DOCKER run -e http_proxy -e https_proxy -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \ |
22444
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
33 |
createrepo $DSHARED |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
34 |
|
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
35 |
cat << EOF > $RPMBUILDDIR/mercurial.repo |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
36 |
# Place this file in /etc/yum.repos.d/mercurial.repo |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
37 |
[mercurial] |
23124
4c490626af13
buildrpm: fix use of invalid $PLATFORM in mercurial.repo
Mads Kiilerich <madski@unity3d.com>
parents:
22444
diff
changeset
|
38 |
name=Mercurial packages for $PLATFORM |
22444
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
39 |
# baseurl=file://$RPMBUILDDIR/ |
23124
4c490626af13
buildrpm: fix use of invalid $PLATFORM in mercurial.repo
Mads Kiilerich <madski@unity3d.com>
parents:
22444
diff
changeset
|
40 |
baseurl=http://hg.example.com/build/$PLATFORM/ |
22444
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
41 |
skip_if_unavailable=True |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
42 |
gpgcheck=0 |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
43 |
enabled=1 |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
44 |
EOF |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
45 |
|
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
46 |
echo |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
47 |
echo "Build complete - results can be found in $RPMBUILDDIR" |