new feature ./build-in-docker.sh to start a temporary ubuntu docker container where the project is built and tested in$
This commit is contained in:
@@ -19,6 +19,7 @@ PROJECT_PATH=$(pwd)
|
|||||||
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
|
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
|
||||||
configure=0
|
configure=0
|
||||||
build=0
|
build=0
|
||||||
|
docker=0
|
||||||
buildtarget="distcheck"
|
buildtarget="distcheck"
|
||||||
overwrite=0
|
overwrite=0
|
||||||
rebuild=0
|
rebuild=0
|
||||||
@@ -26,6 +27,7 @@ rebuildfiles=()
|
|||||||
while test $# -gt 0; do
|
while test $# -gt 0; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
(--configure|-c) configure=1;;
|
(--configure|-c) configure=1;;
|
||||||
|
(--docker|-d) docker=1;;
|
||||||
(--build|-b) configure=1; build=1;;
|
(--build|-b) configure=1; build=1;;
|
||||||
(--target|-t) shift; configure=1; build=1; buildtarget="$1";;
|
(--target|-t) shift; configure=1; build=1; buildtarget="$1";;
|
||||||
(--overwrite|-o) overwrite=1;;
|
(--overwrite|-o) overwrite=1;;
|
||||||
@@ -42,6 +44,7 @@ SYNOPSIS
|
|||||||
OPTIONS
|
OPTIONS
|
||||||
|
|
||||||
--configure, -c call ./configure after initialization
|
--configure, -c call ./configure after initialization
|
||||||
|
--docker, -d build and run tests in a docker instance
|
||||||
--build, -b build, also call ./configure && make distcheck
|
--build, -b build, also call ./configure && make distcheck
|
||||||
--target, -t <target> same as -b, but specify target instead of distcheck
|
--target, -t <target> same as -b, but specify target instead of distcheck
|
||||||
--overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros)
|
--overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros)
|
||||||
@@ -105,6 +108,7 @@ GENERATED FILES
|
|||||||
* ax_check_qt.m4 - auxiliary macro definition file
|
* ax_check_qt.m4 - auxiliary macro definition file
|
||||||
* resolve-debbuilddeps.sh - script to install debian package dependencies
|
* resolve-debbuilddeps.sh - script to install debian package dependencies
|
||||||
* resolve-rpmbuilddeps.sh - script to install RPM package dependencies
|
* resolve-rpmbuilddeps.sh - script to install RPM package dependencies
|
||||||
|
* build-in-docker.sh - script to build the project encapsulated in a docker container
|
||||||
* build-resource-file.sh - build resource.qrc file from a resource directory
|
* build-resource-file.sh - build resource.qrc file from a resource directory
|
||||||
* mac-create-app-bundle.sh - script to create apple mac os-x app-bundle
|
* mac-create-app-bundle.sh - script to create apple mac os-x app-bundle
|
||||||
* AUTHORS - replace your name in AUTHORS before first run
|
* AUTHORS - replace your name in AUTHORS before first run
|
||||||
@@ -405,6 +409,7 @@ copy ax_cxx_compile_stdcxx_11.m4
|
|||||||
copy ax_check_qt.m4
|
copy ax_check_qt.m4
|
||||||
copy resolve-debbuilddeps.sh
|
copy resolve-debbuilddeps.sh
|
||||||
copy resolve-rpmbuilddeps.sh
|
copy resolve-rpmbuilddeps.sh
|
||||||
|
copy build-in-docker.sh
|
||||||
copy build-resource-file.sh
|
copy build-resource-file.sh
|
||||||
copy mac-create-app-bundle.sh
|
copy mac-create-app-bundle.sh
|
||||||
AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1)
|
AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1)
|
||||||
@@ -814,7 +819,7 @@ if testtag AX_USE_DEBIAN_PACKAGING; then
|
|||||||
|
|
||||||
-- @AUTHOR@ @BUILD_DATE@
|
-- @AUTHOR@ @BUILD_DATE@
|
||||||
EOF
|
EOF
|
||||||
BUILD_DEPENDS="debhelper, subversion, pkg-config, automake, libtool, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | qt4-default | qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi)"
|
BUILD_DEPENDS="debhelper, subversion, svn2cl, pkg-config, automake, libtool, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | qt4-default | qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi)"
|
||||||
to debian/control.in <<EOF
|
to debian/control.in <<EOF
|
||||||
Source: @PACKAGE_NAME@
|
Source: @PACKAGE_NAME@
|
||||||
Priority: extra
|
Priority: extra
|
||||||
@@ -1024,3 +1029,8 @@ fi
|
|||||||
if test "$build" -eq 1; then
|
if test "$build" -eq 1; then
|
||||||
make $buildtarget
|
make $buildtarget
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#### Build In Docker If User Requires ####
|
||||||
|
if test "$docker" -eq 1; then
|
||||||
|
./build-in-docker.sh
|
||||||
|
fi
|
||||||
|
15
scripts/build-in-docker.sh
Executable file
15
scripts/build-in-docker.sh
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#! /bin/bash -ex
|
||||||
|
|
||||||
|
# build and test everything in a fresh docker installation
|
||||||
|
|
||||||
|
DOCKER_ID=$(docker run -d -v $(pwd):/workdir -w /workdir ubuntu sleep infinity)
|
||||||
|
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-add-repository universe
|
||||||
|
docker exec ${DOCKER_ID} apt-add-repository https://dev.marc.waeckerlin.org/repository
|
||||||
|
wget -O- https://dev.marc.waeckerlin.org/repository/PublicKey \
|
||||||
|
| docker exec -i ${DOCKER_ID} apt-key add -
|
||||||
|
docker exec ${DOCKER_ID} apt-get update
|
||||||
|
docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh
|
||||||
|
docker exec -u $(id -u) ${DOCKER_ID} svn upgrade || true
|
||||||
|
docker exec -u $(id -u) ${DOCKER_ID} ./bootstrap.sh -t "all check distcheck"
|
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
dist_pkgdata_DATA = ax_check_qt.m4 bootstrap.sh \
|
dist_pkgdata_DATA = ax_check_qt.m4 bootstrap.sh \
|
||||||
resolve-rpmbuilddeps.sh \
|
resolve-rpmbuilddeps.sh \
|
||||||
ax_cxx_compile_stdcxx_11.m4 \
|
ax_cxx_compile_stdcxx_11.m4 build-in-docker.sh \
|
||||||
build-resource-file.sh \
|
build-resource-file.sh \
|
||||||
ax_init_standard_project.m4 \
|
ax_init_standard_project.m4 \
|
||||||
mac-create-app-bundle.sh resolve-debbuilddeps.sh
|
mac-create-app-bundle.sh resolve-debbuilddeps.sh
|
||||||
|
@@ -22,6 +22,7 @@ function install() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
TO_INSTALL=
|
TO_INSTALL=
|
||||||
|
Reference in New Issue
Block a user