author | Anton Shestakov <av6@dwimlabs.net> |
Fri, 27 May 2022 14:33:32 +0400 | |
changeset 49235 | 72ff7cd05176 |
parent 48331 | 4713bcf78037 |
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 |
|
43359
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
9 |
DOCKERFILE="$PLATFORM" |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
10 |
OS_RELEASE="${PLATFORM//[a-z]/}" |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
11 |
case "$PLATFORM" in |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
12 |
fedora*) |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
13 |
DOCKERFILE="${PLATFORM//[0-9]/}.template" |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
14 |
;; |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
15 |
esac |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
16 |
|
38458
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38457
diff
changeset
|
17 |
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
|
18 |
|
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38457
diff
changeset
|
19 |
CONTAINER=hg-docker-$PLATFORM |
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38457
diff
changeset
|
20 |
|
48331
4713bcf78037
dockerrpm: always use current user and group
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43359
diff
changeset
|
21 |
DOCKERUID=$(id -u) |
4713bcf78037
dockerrpm: always use current user and group
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
43359
diff
changeset
|
22 |
DOCKERGID=$(id -g) |
41234
4c0d4bbdc395
packaging: allow running packaging with custom uid+gid for CentOS
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
38458
diff
changeset
|
23 |
|
43359
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
24 |
$BUILDDIR/hg-docker build \ |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
25 |
--build-arg UID=$DOCKERUID \ |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
26 |
--build-arg GID=$DOCKERGID \ |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
27 |
--build-arg OS_RELEASE=${OS_RELEASE:-latest} \ |
e66a3bfcb19b
packaging: make dockerrpm fedora target more generic
Mads Kiilerich <mads@kiilerich.com>
parents:
43355
diff
changeset
|
28 |
$BUILDDIR/docker/$DOCKERFILE $CONTAINER |
22440
cf7b5c011737
dockerrpm: run docker build process as the current user, not as root
Mads Kiilerich <madski@unity3d.com>
parents:
22439
diff
changeset
|
29 |
|
22441
bb9a06d14857
dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents:
22440
diff
changeset
|
30 |
RPMBUILDDIR=$ROOTDIR/packages/$PLATFORM |
43355
433cdcb37321
packaging: move dockerrpm output directory creation to dockerrpm
Mads Kiilerich <mads@kiilerich.com>
parents:
41234
diff
changeset
|
31 |
mkdir -p $RPMBUILDDIR |
38013
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38008
diff
changeset
|
32 |
$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
|
33 |
|
bb9a06d14857
dockerrpm: prepare source outside docker and just run rpmbuild inside docker
Mads Kiilerich <madski@unity3d.com>
parents:
22440
diff
changeset
|
34 |
DSHARED=/mnt/shared |
38457
11eda1f1b6e7
packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38013
diff
changeset
|
35 |
DBUILDUSER=build |
11eda1f1b6e7
packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38013
diff
changeset
|
36 |
|
33597
a3ac1ea611ce
docker: pass proxy arguments to docker process
Mathias De Maré <mathias.de_mare@nokia.com>
parents:
27788
diff
changeset
|
37 |
$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
|
38 |
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
|
39 |
|
33597
a3ac1ea611ce
docker: pass proxy arguments to docker process
Mathias De Maré <mathias.de_mare@nokia.com>
parents:
27788
diff
changeset
|
40 |
$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
|
41 |
createrepo $DSHARED |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
42 |
|
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
43 |
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
|
44 |
# 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
|
45 |
[mercurial] |
23124
4c490626af13
buildrpm: fix use of invalid $PLATFORM in mercurial.repo
Mads Kiilerich <madski@unity3d.com>
parents:
22444
diff
changeset
|
46 |
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
|
47 |
# baseurl=file://$RPMBUILDDIR/ |
23124
4c490626af13
buildrpm: fix use of invalid $PLATFORM in mercurial.repo
Mads Kiilerich <madski@unity3d.com>
parents:
22444
diff
changeset
|
48 |
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
|
49 |
skip_if_unavailable=True |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
50 |
gpgcheck=0 |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
51 |
enabled=1 |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
52 |
EOF |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
53 |
|
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
54 |
echo |
49ea49823769
dockerrpm: create a yum/dnf repo from the generated rpms
Mads Kiilerich <madski@unity3d.com>
parents:
22443
diff
changeset
|
55 |
echo "Build complete - results can be found in $RPMBUILDDIR" |