mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-15 00:02:52 -04:00
Add support for docker-based builds and test in worktrees
This commit is contained in:
parent
4997e8a4e1
commit
b1d2d3685b
@ -44,12 +44,29 @@ while test -n "$1"; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
cd $(dirname $0)/.. || exit 1
|
cd $(dirname $0)/.. || exit 1
|
||||||
|
#echo "--=[ PWD is $PWD"
|
||||||
|
|
||||||
export QGIS_BUILDDIR=build-ci
|
export QGIS_BUILDDIR=build-ci
|
||||||
export QGIS_WORKSPACE=${PWD}
|
|
||||||
#echo "--=[ PWD is $PWD"
|
QGIS_WORKSPACE="$(pwd -P)"
|
||||||
|
export QGIS_WORKSPACE
|
||||||
echo "--=[ QGIS_WORKSPACE is $QGIS_WORKSPACE"
|
echo "--=[ QGIS_WORKSPACE is $QGIS_WORKSPACE"
|
||||||
|
|
||||||
|
QGIS_WORKSPACE_MOUNTPOINT=/root/QGIS # TODO: make it match WORKSPACE ?
|
||||||
|
export QGIS_WORKSPACE_MOUNTPOINT
|
||||||
|
echo "--=[ QGIS_WORKSPACE_MOUNTPOINT is $QGIS_WORKSPACE_MOUNTPOINT"
|
||||||
|
|
||||||
|
QGIS_GIT_DIR="$(git rev-parse --git-dir)"
|
||||||
|
if test -f ${QGIS_GIT_DIR}/commondir; then
|
||||||
|
QGIS_COMMON_GIT_DIR="$(cat ${QGIS_GIT_DIR}/commondir)"
|
||||||
|
else
|
||||||
|
QGIS_COMMON_GIT_DIR=${QGIS_WORKSPACE}
|
||||||
|
fi
|
||||||
|
QGIS_COMMON_GIT_DIR="$(cd ${QGIS_COMMON_GIT_DIR} && pwd -P)"
|
||||||
|
export QGIS_COMMON_GIT_DIR
|
||||||
|
echo "--=[ QGIS_COMMON_GIT_DIR is $QGIS_COMMON_GIT_DIR"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Make qgis3-build-deps-binary-image available, building it if needed
|
# Make qgis3-build-deps-binary-image available, building it if needed
|
||||||
@ -69,7 +86,8 @@ else
|
|||||||
echo "--=[ Building qgis inside the dependencies container"
|
echo "--=[ Building qgis inside the dependencies container"
|
||||||
docker run -t --name qgis_container \
|
docker run -t --name qgis_container \
|
||||||
--rm \
|
--rm \
|
||||||
-v $(pwd):/root/QGIS \
|
-v ${QGIS_WORKSPACE}:${QGIS_WORKSPACE} \
|
||||||
|
-v ${QGIS_COMMON_GIT_DIR}:${QGIS_COMMON_GIT_DIR} \
|
||||||
--env-file .docker/docker-variables.env \
|
--env-file .docker/docker-variables.env \
|
||||||
--env PUSH_TO_CDASH=false \
|
--env PUSH_TO_CDASH=false \
|
||||||
--env WITH_QT5=true \
|
--env WITH_QT5=true \
|
||||||
@ -77,9 +95,10 @@ else
|
|||||||
--env WITH_QUICK=false \
|
--env WITH_QUICK=false \
|
||||||
--env WITH_3D=false \
|
--env WITH_3D=false \
|
||||||
--env PATCH_QT_3D=false \
|
--env PATCH_QT_3D=false \
|
||||||
--env CTEST_BUILD_DIR=/root/QGIS/${QGIS_BUILDDIR} \
|
--env CTEST_SOURCE_DIR=${QGIS_WORKSPACE} \
|
||||||
|
--env CTEST_BUILD_DIR=${QGIS_WORKSPACE}/${QGIS_BUILDDIR} \
|
||||||
${IMAGE_BUILD_DEPS} \
|
${IMAGE_BUILD_DEPS} \
|
||||||
/root/QGIS/.docker/docker-qgis-build.sh ||
|
${QGIS_WORKSPACE_MOUNTPOINT}/.docker/docker-qgis-build.sh ||
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
test -d ${QGIS_BUILDDIR} || {
|
test -d ${QGIS_BUILDDIR} || {
|
||||||
@ -95,24 +114,19 @@ fi
|
|||||||
|
|
||||||
if test "${INTERACTIVE}" = "no"; then
|
if test "${INTERACTIVE}" = "no"; then
|
||||||
echo "--=[ Running tests via docker-compose"
|
echo "--=[ Running tests via docker-compose"
|
||||||
docker-compose \
|
COMMAND=${QGIS_WORKSPACE_MOUNTPOINT}/.docker/docker-qgis-test.sh
|
||||||
-f .docker/docker-compose-testing.yml \
|
COMMAND_ARGS="${TESTS_TO_RUN}"
|
||||||
run \
|
|
||||||
-e PUSH_TO_CDASH=false \
|
|
||||||
-e CTEST_BUILD_DIR=/root/QGIS/${QGIS_BUILDDIR} \
|
|
||||||
qgis-deps \
|
|
||||||
/root/QGIS/.docker/docker-qgis-test.sh \
|
|
||||||
${TESTS_TO_RUN}
|
|
||||||
else
|
else
|
||||||
echo "--=[ Starting tests environment via docker-compose"
|
echo "--=[ Starting interactive shell into test environment"
|
||||||
docker-compose \
|
COMMAND=bash
|
||||||
-f .docker/docker-compose-testing.yml \
|
|
||||||
run \
|
|
||||||
-e CTEST_BUILD_DIR=/root/QGIS/${QGIS_BUILDDIR} \
|
|
||||||
qgis-deps \
|
|
||||||
bash
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
docker-compose \
|
||||||
#echo "Not implemented yet" >&2
|
-f .docker/docker-compose-testing.yml \
|
||||||
#exit 1
|
run \
|
||||||
|
-w "${QGIS_WORKSPACE_MOUNTPOINT}" \
|
||||||
|
-e PUSH_TO_CDASH=false \
|
||||||
|
-e CTEST_SOURCE_DIR="${QGIS_WORKSPACE}" \
|
||||||
|
-e CTEST_BUILD_DIR="${QGIS_WORKSPACE}/${QGIS_BUILDDIR}" \
|
||||||
|
qgis-deps \
|
||||||
|
${COMMAND} ${COMMAND_ARGS}
|
||||||
|
@ -23,6 +23,7 @@ services:
|
|||||||
image: qgis3-build-deps-binary-image
|
image: qgis3-build-deps-binary-image
|
||||||
volumes:
|
volumes:
|
||||||
- ${QGIS_WORKSPACE}:/root/QGIS
|
- ${QGIS_WORKSPACE}:/root/QGIS
|
||||||
|
- ${QGIS_COMMON_GIT_DIR}:${QGIS_COMMON_GIT_DIR}
|
||||||
links:
|
links:
|
||||||
# - mssql
|
# - mssql
|
||||||
- webdav
|
- webdav
|
||||||
|
1
.github/workflows/run-tests.yml
vendored
1
.github/workflows/run-tests.yml
vendored
@ -394,6 +394,7 @@ jobs:
|
|||||||
id: tests
|
id: tests
|
||||||
env:
|
env:
|
||||||
TEST_BATCH: ${{matrix.test-batch}}
|
TEST_BATCH: ${{matrix.test-batch}}
|
||||||
|
QGIS_COMMON_GIT_DIR: ${{ github.workspace }}
|
||||||
run: |
|
run: |
|
||||||
DOCKERFILE=$( ( [[ ${{ matrix.test-batch }} == "ORACLE" ]] && echo "docker-compose-testing-oracle.yml" ) \
|
DOCKERFILE=$( ( [[ ${{ matrix.test-batch }} == "ORACLE" ]] && echo "docker-compose-testing-oracle.yml" ) \
|
||||||
|| ( [[ ${{ matrix.test-batch }} == "POSTGRES" ]] && echo "docker-compose-testing-postgres.yml" ) \
|
|| ( [[ ${{ matrix.test-batch }} == "POSTGRES" ]] && echo "docker-compose-testing-postgres.yml" ) \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user