blob: 02e7f31e1de4dc290b27ea9d28b892cb0dc39d79 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
if (NOT ENABLE_PYTHON_SCRIPTING)
return()
endif()
set(MINIFI_VERSION_STR ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
function(ADD_DOCKER_TARGET_FROM_CENTOS BASE_IMAGE TAG_PREFIX INSTALL_PACKAGE_CMD)
add_custom_target(
${TAG_PREFIX}_docker_from_centos_build
COMMAND DOCKER_BUILDKIT=1 docker build
--build-arg MINIFI_VERSION=${MINIFI_VERSION_STR}
--build-arg BASE_IMAGE=${BASE_IMAGE}
--build-arg ARCHIVE_LOCATION=nifi-minifi-cpp-${MINIFI_VERSION_STR}-bin-centos.tar.gz
--build-arg INSTALL_PACKAGE_CMD=${INSTALL_PACKAGE_CMD}
-t apacheminificpp:${TAG_PREFIX}-${MINIFI_VERSION_STR}
-f ${CMAKE_SOURCE_DIR}/docker/python-verify/installed.Dockerfile
${CMAKE_BINARY_DIR})
endfunction()
function(ADD_DOCKER_VERIFY TAG_PREFIX)
add_custom_target(
docker-verify-python-${TAG_PREFIX}
COMMAND ${CMAKE_SOURCE_DIR}/docker/DockerVerify.sh --image-tag-prefix ${TAG_PREFIX} ${MINIFI_VERSION_STR} ${PYTHON_TESTS})
endfunction()
function(ADD_CONDA_TO_DOCKER TAG_PREFIX)
add_custom_target(
conda_${TAG_PREFIX}_docker_from_centos_build
COMMAND DOCKER_BUILDKIT=1 docker build
--build-arg BASE_IMAGE=apacheminificpp:${TAG_PREFIX}-${MINIFI_VERSION_STR}
-t apacheminificpp:conda_${TAG_PREFIX}-${MINIFI_VERSION_STR}
-f ${CMAKE_SOURCE_DIR}/docker/python-verify/conda.Dockerfile
${CMAKE_BINARY_DIR})
endfunction()
function(ADD_VENV_TO_DOCKER TAG_PREFIX)
add_custom_target(
venv_${TAG_PREFIX}_docker_from_centos_build
COMMAND DOCKER_BUILDKIT=1 docker build
--build-arg BASE_IMAGE=apacheminificpp:${TAG_PREFIX}-${MINIFI_VERSION_STR}
-t apacheminificpp:venv_${TAG_PREFIX}-${MINIFI_VERSION_STR}
-f ${CMAKE_SOURCE_DIR}/docker/python-verify/venv.Dockerfile
${CMAKE_BINARY_DIR})
endfunction()
ADD_DOCKER_TARGET_FROM_CENTOS(debian:bullseye patched_bullseye "apt update \\&\\& apt install -y patchelf libpython3-dev python3-venv \\&\\& patchelf /opt/minifi/minifi-current/extensions/libminifi-python-script-extension.so --replace-needed libpython3.so libpython3.9.so")
ADD_DOCKER_TARGET_FROM_CENTOS(ubuntu:jammy patched_jammy "apt update \\&\\& apt install -y patchelf libpython3.10-dev python3.10-venv \\&\\& patchelf /opt/minifi/minifi-current/extensions/libminifi-python-script-extension.so --replace-needed libpython3.so libpython3.10.so.1.0")
ADD_DOCKER_TARGET_FROM_CENTOS(rockylinux:8 rocky8 "yum install -y python3-libs")
ADD_DOCKER_TARGET_FROM_CENTOS(rockylinux:9 rocky9 "yum install -y python3-libs")
ADD_DOCKER_TARGET_FROM_CENTOS(ubuntu:jammy jammy "apt update \\&\\& apt install -y wget")
ADD_CONDA_TO_DOCKER(jammy)
ADD_VENV_TO_DOCKER(rocky9)
if (EXISTS ${CMAKE_SOURCE_DIR}/docker/test/integration/features)
set(PYTHON_TESTS "${PYTHON_TESTS};${CMAKE_SOURCE_DIR}/docker/test/integration/features/python.feature")
set(PYTHON_TESTS "${PYTHON_TESTS};${CMAKE_SOURCE_DIR}/docker/test/integration/features/python_script.feature")
ADD_DOCKER_VERIFY(rocky8)
ADD_DOCKER_VERIFY(rocky9)
ADD_DOCKER_VERIFY(patched_jammy)
ADD_DOCKER_VERIFY(patched_bullseye)
set(PYTHON_TESTS "${PYTHON_TESTS};${CMAKE_SOURCE_DIR}/docker/test/integration/features/python_with_modules.feature")
ADD_DOCKER_VERIFY(conda_jammy)
ADD_DOCKER_VERIFY(venv_rocky9)
endif()