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##*/} | ||||
| configure=0 | ||||
| build=0 | ||||
| docker=0 | ||||
| buildtarget="distcheck" | ||||
| overwrite=0 | ||||
| rebuild=0 | ||||
| @@ -26,6 +27,7 @@ rebuildfiles=() | ||||
| while test $# -gt 0; do | ||||
|     case "$1" in | ||||
|         (--configure|-c) configure=1;; | ||||
|         (--docker|-d) docker=1;; | ||||
|         (--build|-b) configure=1; build=1;; | ||||
|         (--target|-t) shift; configure=1; build=1; buildtarget="$1";; | ||||
|         (--overwrite|-o) overwrite=1;; | ||||
| @@ -42,6 +44,7 @@ SYNOPSIS | ||||
| OPTIONS | ||||
|  | ||||
|   --configure, -c            call ./configure after initialization | ||||
|   --docker, -d               build and run tests in a docker instance | ||||
|   --build, -b                build, also call ./configure && make distcheck | ||||
|   --target, -t <target>      same as -b, but specify target instead of distcheck | ||||
|   --overwrite, -o            overwrite all basic files (bootstrap.sh, m4-macros) | ||||
| @@ -105,6 +108,7 @@ GENERATED FILES | ||||
|     * ax_check_qt.m4 - auxiliary macro definition file | ||||
|     * resolve-debbuilddeps.sh - script to install debian 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 | ||||
|     * mac-create-app-bundle.sh - script to create apple mac os-x app-bundle | ||||
|     * 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 resolve-debbuilddeps.sh | ||||
| copy resolve-rpmbuilddeps.sh | ||||
| copy build-in-docker.sh | ||||
| copy build-resource-file.sh | ||||
| copy mac-create-app-bundle.sh | ||||
| 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@ | ||||
| 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 | ||||
| Source: @PACKAGE_NAME@ | ||||
| Priority: extra | ||||
| @@ -1024,3 +1029,8 @@ fi | ||||
| if test "$build" -eq 1; then | ||||
|     make $buildtarget | ||||
| 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				\ | ||||
|                     resolve-rpmbuilddeps.sh				\ | ||||
|                     ax_cxx_compile_stdcxx_11.m4				\ | ||||
|                     ax_cxx_compile_stdcxx_11.m4 build-in-docker.sh	\ | ||||
|                     build-resource-file.sh				\ | ||||
|                     ax_init_standard_project.m4				\ | ||||
|                     mac-create-app-bundle.sh resolve-debbuilddeps.sh | ||||
|   | ||||
| @@ -22,6 +22,7 @@ function install() { | ||||
|             return 0 | ||||
|         fi | ||||
|     fi | ||||
|     return 1 | ||||
| } | ||||
|  | ||||
| TO_INSTALL= | ||||
|   | ||||
		Reference in New Issue
	
	Block a user