From 3376bd6845f0614908ed304f5033bd644c82d3bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCrkan=20=C4=B0ndibay?= Date: Wed, 7 Aug 2024 16:04:07 +0300 Subject: [PATCH] Adds el/9 ol/9 tests (#367) * Adds el-ol/9 tests * Adds el/9 el/9 defs * Fixes invalid key error * Adds platforms * Fixes folder name * Updates almalinux docker header * Updates almalinux * Adds direct packagecloud link * Adds raw gh link * Fixes release suffix * removing centos7 and ol7 that are no longer supported * almalinux-9 dockerfile url updated * Fixes release suffix ol-9 * enable epel repository and installing pygpgme - updating repo metadata * install python3-gpg * removing pygpgme installation * fixes python38-devel error * Fix python installation in Dockerfile * using alternative method for python installation * try to fixes python38 * updated * centos7 ol7 support removal and fixes release suffix ol-9 * enable epel * updated python instalation * added zlib-devel for installing * Update Dockerfile to fix python38-devel error for ol/9 --------- Co-authored-by: Seda Gundogdu --- .github/workflows/package-tests.yml | 4 +- packaging_automation/test_citus_package.py | 2 + test-images/almalinux-9/Dockerfile | 63 ++++++++++++++++++++++ test-images/ol-9/Dockerfile | 63 ++++++++++++++++++++++ 4 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 test-images/almalinux-9/Dockerfile create mode 100644 test-images/ol-9/Dockerfile diff --git a/.github/workflows/package-tests.yml b/.github/workflows/package-tests.yml index c7b07026..500243f9 100644 --- a/.github/workflows/package-tests.yml +++ b/.github/workflows/package-tests.yml @@ -50,8 +50,8 @@ jobs: matrix: platform: - centos/8 - - centos/7 - - ol/7 + - el/9 + - ol/9 - debian/buster - debian/bullseye - debian/bookworm diff --git a/packaging_automation/test_citus_package.py b/packaging_automation/test_citus_package.py index 7c7213c3..49ea4416 100644 --- a/packaging_automation/test_citus_package.py +++ b/packaging_automation/test_citus_package.py @@ -29,10 +29,12 @@ def run_command(command: str) -> int: class TestPlatform(Enum): el_7 = {"name": "el/7", "docker_image_name": "el-7"} el_8 = {"name": "el/8", "docker_image_name": "el-8"} + el_9 = {"name": "el/9", "docker_image_name": "almalinux-9"} centos_8 = {"name": "centos/8", "docker_image_name": "centos-8"} centos_7 = {"name": "centos/7", "docker_image_name": "centos-7"} ol_7 = {"name": "ol/7", "docker_image_name": "ol-7"} ol_8 = {"name": "ol/8", "docker_image_name": "ol-8"} + ol_9 = {"name": "ol/9", "docker_image_name": "ol-9"} debian_stretch = {"name": "debian/stretch", "docker_image_name": "debian-stretch"} debian_buster = {"name": "debian/buster", "docker_image_name": "debian-buster"} debian_bullseye = { diff --git a/test-images/almalinux-9/Dockerfile b/test-images/almalinux-9/Dockerfile new file mode 100644 index 00000000..74418740 --- /dev/null +++ b/test-images/almalinux-9/Dockerfile @@ -0,0 +1,63 @@ +FROM almalinux:9 +ARG CITUS_VERSION +# Format should be XY and should not include dots e.g for 10.2.1=>102 +ARG CITUS_MAJOR_VERSION +ARG PG_MAJOR +ARG FANCY=1 +ARG HLL_VERSION=2.18.citus-1 +ARG TOPN_VERSION=2.6.0.citus-1 +ARG PACKAGE_RELEASE_SUFFIX=el9 + +ENV CITUS_VERSION ${CITUS_VERSION} + +ENV PG_MAJOR ${PG_MAJOR} + + +RUN yum update -y + + +# TODO Parameterize Citus and postgres version +RUN export CITUS_MAJOR_VER=${CITUS_MAJOR_VERSION//./} && \ + curl https://raw.githubusercontent.com/citusdata/packaging/gh-pages/community/rpm.sh | bash && \ + yum install -y citus${CITUS_MAJOR_VER}_${PG_MAJOR}-${CITUS_VERSION}.citus-${FANCY}.${PACKAGE_RELEASE_SUFFIX} \ + hll_${PG_MAJOR}-${HLL_VERSION}.${PACKAGE_RELEASE_SUFFIX} \ + topn_${PG_MAJOR}-${TOPN_VERSION}.${PACKAGE_RELEASE_SUFFIX} + + +ARG POSTGRES_HOME=/var/lib/pgsql +ENV PATH=/usr/pgsql-${PG_MAJOR}/bin:${PATH}:${POSTGRES_HOME} + +WORKDIR ${POSTGRES_HOME} + +RUN mkdir citus && chown postgres citus + + + + + +USER postgres +RUN cd ~ && initdb -D citus && echo "shared_preload_libraries = 'citus'" >> citus/postgresql.conf + +USER root +# Enable EPEL repository and install dependencies for Python 3.8 +RUN yum install -y epel-release && \ + yum install -y gcc make libcurl-devel openssl-devel bzip2-devel libffi-devel xz-devel wget tar zlib-devel && \ + wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz && \ + tar xvf Python-3.8.12.tgz && \ + cd Python-3.8.12 && \ + ./configure --enable-optimizations && \ + make altinstall && \ + python3.8 -m pip install pip-tools + + +COPY scripts/* ./ + +# Use pip-tools to compile and install requirements +RUN pip-compile && python3.8 -m pip install -r requirements.txt + +USER postgres + +WORKDIR ${POSTGRES_HOME} + +CMD ["test_internal.sh"] + diff --git a/test-images/ol-9/Dockerfile b/test-images/ol-9/Dockerfile new file mode 100644 index 00000000..d79fdcc5 --- /dev/null +++ b/test-images/ol-9/Dockerfile @@ -0,0 +1,63 @@ +FROM oraclelinux:9 + +ARG CITUS_VERSION +# Format should be X.Y and should include dots e.g for 10.2.1=>10.2 +ARG CITUS_MAJOR_VERSION +ARG PG_MAJOR +ARG FANCY=1 +ARG HLL_VERSION=2.18.citus-1 +ARG TOPN_VERSION=2.6.0.citus-1 +ARG PACKAGE_RELEASE_SUFFIX=el9 + +ENV CITUS_VERSION ${CITUS_VERSION} + +ENV PG_MAJOR ${PG_MAJOR} + + +RUN yum update -y && \ + yum install -y curl + + +RUN export CITUS_MAJOR_VER=${CITUS_MAJOR_VERSION//./} && \ + curl https://install.citusdata.com/community/rpm.sh | bash && \ + yum install -y citus${CITUS_MAJOR_VER}_${PG_MAJOR}-${CITUS_VERSION}.citus-${FANCY}.${PACKAGE_RELEASE_SUFFIX} \ + hll_${PG_MAJOR}-${HLL_VERSION}.${PACKAGE_RELEASE_SUFFIX} \ + topn_${PG_MAJOR}-${TOPN_VERSION}.${PACKAGE_RELEASE_SUFFIX} + +ARG POSTGRES_HOME=/var/lib/pgsql +ENV PATH=/usr/pgsql-${PG_MAJOR}/bin:${PATH}:${POSTGRES_HOME} + +WORKDIR ${POSTGRES_HOME} + +RUN mkdir citus && chown postgres citus + +USER postgres +RUN cd ~ && initdb -D citus && echo "shared_preload_libraries = 'citus'" >> citus/postgresql.conf + +USER root +# Install python 3.8 and its dependencies +RUN yum install -y gcc make && \ + yum -y install libcurl-devel \ + openssl-devel \ + bzip2-devel \ + libffi-devel \ + xz-devel \ + libzstd-devel \ + zlib-devel &&\ + curl https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz --output Python-3.8.12.tgz &&\ + tar xvf Python-3.8.12.tgz &&\ + cd Python-3.8.*/ && \ + ./configure --enable-optimizations && \ + make altinstall && \ + python3.8 -m pip install pip-tools + +COPY scripts/* ./ + +RUN pip-compile && python3.8 -m pip install -r requirements.txt + + +USER postgres + +WORKDIR ${POSTGRES_HOME} + +CMD ["test_internal.sh"]