parent
c5bb64338a
commit
7d32068bdd
5 changed files with 100 additions and 13 deletions
@ -0,0 +1,5 @@ |
|||||||
|
repos="ppa:cordova-ubuntu/ppa" |
||||||
|
if test -n "${ANDROID_HOME}"; then |
||||||
|
envs="-e ANDROID_HOME=${ANDROID_HOME}" |
||||||
|
dirs="-v ${ANDROID_HOME}:${ANDROID_HOME}:ro" |
||||||
|
fi |
@ -1,20 +1,90 @@ |
|||||||
#! /bin/bash -ex |
#! /bin/bash -e |
||||||
|
|
||||||
# build and test everything in a fresh docker installation |
# build and test everything in a fresh docker installation |
||||||
|
img="ubuntu:latest" |
||||||
|
repos="" |
||||||
|
keys="" |
||||||
|
envs="" |
||||||
|
dirs="-v $(pwd):/workdir" |
||||||
|
targets="all check distcheck" |
||||||
|
if test -e ./build-in-docker.conf; then |
||||||
|
# you can preconfigure the variables in file build-in-docker.conf |
||||||
|
# if you do so, add the file to EXTRA_DIST in makefile.am |
||||||
|
source ./build-in-docker.conf |
||||||
|
fi |
||||||
|
while test $# -gt 0; do |
||||||
|
case "$1" in |
||||||
|
(-h|--help) |
||||||
|
echo "$0 [OPTIONS]" |
||||||
|
echo |
||||||
|
echo "OPTIONS:" |
||||||
|
echo " -h, --help show this help" |
||||||
|
echo " -i --image <image> use given docker image instead of ${img}" |
||||||
|
echo " -t --targets targets specify build targets, default: ${targets}" |
||||||
|
echo " -r --repo <url> add given apt repository" |
||||||
|
echo " -k --key <url> add public key from url" |
||||||
|
echo " -e --env <var>=<val> set environment variable in docker" |
||||||
|
echo " -d --dir <dir> access given directory read only" |
||||||
|
echo |
||||||
|
echo "EXAMPLE:" |
||||||
|
echo |
||||||
|
echo "$0 -i mwaeckerlin/ubuntu:trusty-i386 \\" |
||||||
|
echo " -t deb \\" |
||||||
|
echo " -e ANDROID_HOME=/opt/local/android \\" |
||||||
|
echo " -d /opt/local/android \\" |
||||||
|
echo " -r universe \\" |
||||||
|
echo " -r https://dev.marc.waeckerlin.org/repository \\" |
||||||
|
echo " -k https://dev.marc.waeckerlin.org/repository/PublicKey" |
||||||
|
echo |
||||||
|
exit 0 |
||||||
|
;; |
||||||
|
(-i|--image) shift; |
||||||
|
img="$1" |
||||||
|
;; |
||||||
|
(-t|--targets) shift; |
||||||
|
targets="$1" |
||||||
|
;; |
||||||
|
(-r|--repo) shift; |
||||||
|
repos+=" $1" |
||||||
|
;; |
||||||
|
(-k|--key) shift; |
||||||
|
keys+=" $1" |
||||||
|
;; |
||||||
|
(-e|--env) shift; |
||||||
|
envs+=" -e $1" |
||||||
|
;; |
||||||
|
(-d|--dirs) shift; |
||||||
|
dirs+=" -v $1:$1:ro" |
||||||
|
;; |
||||||
|
(*) |
||||||
|
echo "**** ERROR: unknown option '$1', try --help" 1>&2 |
||||||
|
exit 1 |
||||||
|
;; |
||||||
|
esac |
||||||
|
if test $# -eq 0; then |
||||||
|
echo "**** ERROR: missing value, try --help" 2>61 |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
shift |
||||||
|
done |
||||||
|
|
||||||
|
set -x |
||||||
|
|
||||||
DOCKER_ID=$(docker run -d -v $(pwd):/workdir -w /workdir ubuntu sleep infinity) |
DOCKER_ID=$(docker run -d ${dirs} ${envs} -w /workdir $img sleep infinity) |
||||||
trap "docker rm -f ${DOCKER_ID}" INT TERM EXIT |
trap "docker rm -f ${DOCKER_ID}" INT TERM EXIT |
||||||
docker exec ${DOCKER_ID} apt-get install -y software-properties-common apt-transport-https dpkg-dev |
docker exec ${DOCKER_ID} apt-get install -y software-properties-common apt-transport-https dpkg-dev |
||||||
docker exec ${DOCKER_ID} apt-add-repository universe |
if test -n "${repos}"; then |
||||||
docker exec ${DOCKER_ID} apt-add-repository https://dev.marc.waeckerlin.org/repository |
for repo in ${repos}; do |
||||||
wget -O- https://dev.marc.waeckerlin.org/repository/PublicKey \ |
docker exec ${DOCKER_ID} apt-add-repository ${repo} |
||||||
|
done |
||||||
|
fi |
||||||
|
if test -n "${keys}"; then |
||||||
|
for key in ${keys}; do |
||||||
|
wget -O- ${key} \ |
||||||
| docker exec -i ${DOCKER_ID} apt-key add - |
| docker exec -i ${DOCKER_ID} apt-key add - |
||||||
if test -n "$*"; then |
|
||||||
for p in $*; do |
|
||||||
docker exec ${DOCKER_ID} apt-add-repository $p |
|
||||||
done |
done |
||||||
fi |
fi |
||||||
docker exec ${DOCKER_ID} apt-get update |
docker exec ${DOCKER_ID} apt-get update |
||||||
docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh |
docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh |
||||||
docker exec -u $(id -u) ${DOCKER_ID} svn upgrade || true |
docker exec -u $(id -u) ${DOCKER_ID} svn upgrade || true |
||||||
docker exec -u $(id -u) ${DOCKER_ID} ./bootstrap.sh -t "all check distcheck" |
docker exec -u $(id -u) ${DOCKER_ID} ./bootstrap.sh -t "${targets}" |
||||||
|
Loading…
Reference in new issue