author | Augie Fackler <augie@google.com> |
Wed, 29 May 2019 10:00:30 -0400 | |
changeset 42410 | c2deb2512823 |
parent 38766 | 824636b08400 |
child 45981 | f6a1540dc572 |
permissions | -rwxr-xr-x |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
1 |
#!/bin/bash -eu |
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
2 |
|
38047
ea70512b1ad6
packaging: move packagelib.sh into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38046
diff
changeset
|
3 |
. $(dirname $0)/packagelib.sh |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
4 |
|
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
5 |
BUILDDIR=$(dirname $0) |
38046
1868db0d1515
packaging: move some docker scripts into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents:
29007
diff
changeset
|
6 |
export ROOTDIR=$(cd $BUILDDIR/../.. > /dev/null; pwd) |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
7 |
|
27210
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
8 |
DISTID="$1" |
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
9 |
CODENAME="$2" |
9b86d29867a5
builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents:
27209
diff
changeset
|
10 |
PLATFORM="$1-$2" |
29006
be02dfe41ae2
dockerdeb: fix incorrect number of shifts
Sean Farley <sean@farley.io>
parents:
28987
diff
changeset
|
11 |
shift; shift # extra params are passed to build process |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
12 |
|
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
13 |
OUTPUTDIR=${OUTPUTDIR:=$ROOTDIR/packages/$PLATFORM} |
38462
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38461
diff
changeset
|
14 |
CONTAINER=hg-docker-$PLATFORM |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
15 |
|
38462
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38461
diff
changeset
|
16 |
DOCKER=$($BUILDDIR/hg-docker docker-path) |
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38461
diff
changeset
|
17 |
|
38463
c8ef9d897e14
packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38462
diff
changeset
|
18 |
$BUILDDIR/hg-docker build \ |
c8ef9d897e14
packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38462
diff
changeset
|
19 |
--build-arg CODENAME=$CODENAME \ |
c8ef9d897e14
packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38462
diff
changeset
|
20 |
$BUILDDIR/docker/$DISTID.template \ |
c8ef9d897e14
packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38462
diff
changeset
|
21 |
$CONTAINER |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
22 |
|
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
23 |
# debuild only appears to be able to save built debs etc to .., so we |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
24 |
# have to share the .. of the current directory with the docker |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
25 |
# container and hope it's writable. Whee. |
38055
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38048
diff
changeset
|
26 |
dn=$(basename $ROOTDIR) |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
27 |
|
38461
11eda1f1b6e7
packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38055
diff
changeset
|
28 |
DBUILDUSER=build |
11eda1f1b6e7
packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38055
diff
changeset
|
29 |
|
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
30 |
if [ $(uname) = "Darwin" ] ; then |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
31 |
$DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \ |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
32 |
sh -c "cd /mnt/$dn && make clean && make local" |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
33 |
fi |
38055
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38048
diff
changeset
|
34 |
$DOCKER run -u $DBUILDUSER --rm -v $ROOTDIR/..:/mnt $CONTAINER \ |
38048
64b086f0ebb5
packaging: move builddeb into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38047
diff
changeset
|
35 |
sh -c "cd /mnt/$dn && DEB_BUILD_OPTIONS='${DEB_BUILD_OPTIONS:=}' contrib/packaging/builddeb --build --distid $DISTID --codename $CODENAME $@" |
38766
824636b08400
packaging: always execute builddeb from source root
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38463
diff
changeset
|
36 |
(cd $ROOTDIR && contrib/packaging/builddeb --cleanup --distid $DISTID --codename $CODENAME) |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
37 |
if [ $(uname) = "Darwin" ] ; then |
26148
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
38 |
$DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \ |
7f49efcaa9b4
debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents:
26108
diff
changeset
|
39 |
sh -c "cd /mnt/$dn && make clean" |
24973
4c4d0012db4f
dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff
changeset
|
40 |
fi |