Mercurial > hg
annotate contrib/packaging/dockerrpm @ 51016:aed91a4421b8
repo-upgrade: keep the revlog open while cloning
This is more explicit. No performance differences were observed.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 25 Sep 2023 16:36:17 +0200 |
parents | 4713bcf78037 |
children |
rev | line source |
---|---|
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" |