Skip to content

Commit

Permalink
Adds el/9 ol/9 tests (#367)
Browse files Browse the repository at this point in the history
* 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 <[email protected]>
  • Loading branch information
gurkanindibay and sedagundogdu authored Aug 7, 2024
1 parent 830963a commit 3376bd6
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 2 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/package-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ jobs:
matrix:
platform:
- centos/8
- centos/7
- ol/7
- el/9
- ol/9
- debian/buster
- debian/bullseye
- debian/bookworm
Expand Down
2 changes: 2 additions & 0 deletions packaging_automation/test_citus_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down
63 changes: 63 additions & 0 deletions test-images/almalinux-9/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]

63 changes: 63 additions & 0 deletions test-images/ol-9/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]

0 comments on commit 3376bd6

Please sign in to comment.