-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adds PostgreSQL 17 support #1117
Merged
Merged
Changes from 9 commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
a5f0251
Adds pg 17 support
sedagundogdu 09f99a4
Adds pg17 to pipeline
sedagundogdu bcd17d6
Fixes patch error
sedagundogdu 989b391
Removes debian buster from test pipeline
sedagundogdu 8db877d
Removes centos7 and ol7
sedagundogdu 5b3b586
Removes postgres 11 support
sedagundogdu dd02e78
Fixes compliant issue
sedagundogdu 27f5361
Fixes compliant issue - creates oraclelinux-6-pg17 dockerfile
sedagundogdu 89e9134
Updates os-list.csv to remove CentOS 7, Oracle Linux 7, and Ubuntu Ki…
sedagundogdu e291e6d
Fixes review issues
sedagundogdu File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
set -euo pipefail | ||
IFS=$'\n\t' | ||
|
||
pgversions='10 11 12 13 14 15 16' | ||
pgversions='10 11 12 13 14 15 16 17' | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please delete 10 and 11 here since their support has been dropped There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed |
||
topdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/.." | ||
dockerfiles_dir="${topdir}/dockerfiles" | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,174 @@ | ||
# vim:set ft=dockerfile: | ||
FROM almalinux:8 | ||
RUN [[ almalinux != centos ]] || [[ 8 != 8 ]] || ( \ | ||
cd /etc/yum.repos.d/ && sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* \ | ||
&& sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-* \ | ||
) | ||
|
||
RUN yum -y update | ||
|
||
RUN [[ almalinux != centos ]] || [[ 8 != 8 ]] || ( \ | ||
dnf install epel-release -y && \ | ||
dnf install dnf-plugins-core -y && \ | ||
dnf install epel-release -y && \ | ||
dnf config-manager --set-enabled powertools && \ | ||
dnf install -y perl-IPC-Run \ | ||
) | ||
|
||
RUN [[ almalinux != almalinux ]] || [[ 8 != 8 ]] || ( \ | ||
dnf install epel-release -y && \ | ||
dnf install dnf-plugins-core -y && \ | ||
dnf install epel-release -y && \ | ||
dnf config-manager --set-enabled powertools && \ | ||
dnf install -y perl-IPC-Run \ | ||
) | ||
|
||
RUN [[ almalinux != oraclelinux ]] || [[ 8 != 8 ]] || ( \ | ||
curl -sO https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/perl-IO-Tty-1.12-11.el8.x86_64.rpm && \ | ||
curl -sO https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/perl-IPC-Run-0.99-1.el8.noarch.rpm && \ | ||
dnf install perl-IO-Tty-1.12-11.el8.x86_64.rpm -y && \ | ||
dnf install perl-IPC-Run-0.99-1.el8.noarch.rpm -y && \ | ||
rm -f perl-IPC-Run-0.99-1.el8.noarch.rpm && \ | ||
rm -f perl-IO-Tty-1.12-11.el8.x86_64.rpm \ | ||
) | ||
|
||
RUN [[ almalinux != almalinux ]] || [[ 8 != 9 ]] || ( \ | ||
dnf install epel-release -y && \ | ||
dnf -y install dnf-plugins-core && \ | ||
dnf config-manager --enable epel && \ | ||
dnf config-manager --set-enabled crb && \ | ||
dnf install -y perl-IPC-Run \ | ||
) | ||
|
||
# FIXME: Hack around docker/docker#10180 | ||
RUN ( yum install -y yum-plugin-ovl || yum install -y yum-plugin-ovl || touch /var/lib/rpm/* ) \ | ||
&& yum clean all | ||
|
||
# Enable some other repos for some dependencies in OL/7 | ||
# see https://yum.oracle.com/getting-started.html#installing-from-oracle-linux-yum-server | ||
RUN [[ almalinux != oraclelinux ]] || [[ 8 != 7 ]] || ( \ | ||
yum install -y oraclelinux-release-el7 oracle-softwarecollection-release-el7 oracle-epel-release-el7 oraclelinux-developer-release-el7 \ | ||
&& yum-config-manager --enable \ | ||
ol7_software_collections \ | ||
ol7_developer \ | ||
ol7_developer_EPEL \ | ||
ol7_optional_latest \ | ||
ol7_optional_archive \ | ||
ol7_u9_base \ | ||
ol7_security_validation \ | ||
ol7_addons \ | ||
) | ||
|
||
# lz4 1.8 is preloaded in oracle 7 however, lz4-devel is not loaded and only 1.7.5 version exists | ||
# in oracle 7 repos. So package from centos repo was used | ||
# There is no package in oracle repos for lz4. Also it is not preloaded. So both lz4 and lz4-devel packages | ||
# were downloaded from centos el/6 repos | ||
RUN if [[ almalinux == oraclelinux ]] && [[ 8 == 7 ]]; then yum install -y wget \ | ||
&& wget http://mirror.centos.org/centos/7/os/x86_64/Packages/lz4-devel-1.8.3-1.el7.x86_64.rpm \ | ||
&& rpm -ivh lz4-devel-1.8.3-1.el7.x86_64.rpm ; \ | ||
elif [[ almalinux == oraclelinux ]] && [[ 8 == 6 ]]; then yum install -y wget \ | ||
&& wget https://cbs.centos.org/kojifiles/packages/lz4/r131/1.el6/x86_64/lz4-r131-1.el6.x86_64.rpm \ | ||
&& rpm -ivh lz4-r131-1.el6.x86_64.rpm \ | ||
&& wget https://cbs.centos.org/kojifiles/packages/lz4/r131/1.el6/x86_64/lz4-devel-r131-1.el6.x86_64.rpm \ | ||
&& rpm -ivh lz4-devel-r131-1.el6.x86_64.rpm; \ | ||
else yum install -y lz4 lz4-devel; fi | ||
|
||
# install build tools and PostgreSQL development files | ||
RUN ( yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm \ | ||
&& ( [[ 17 != 17 ]] || sed -i '/\[pgdg17-updates-testing\]/{n;n;n;s/.*/enabled=1/}' /etc/yum.repos.d/pgdg-redhat-all.repo ) \ | ||
&& [[ -z "epel-release" ]] || yum install -y epel-release) \ | ||
&& yum groupinstall -y 'Development Tools' \ | ||
&& yum install -y \ | ||
bzip2-devel \ | ||
libffi-devel \ | ||
xz-devel \ | ||
flex \ | ||
gcc-c++ \ | ||
hunspell-en \ | ||
libcurl-devel \ | ||
libicu-devel \ | ||
libstdc++-devel \ | ||
libxml2-devel \ | ||
libxslt-devel \ | ||
openssl-devel \ | ||
pam-devel \ | ||
readline-devel \ | ||
rpm-build \ | ||
rpmlint \ | ||
tar \ | ||
libzstd \ | ||
libzstd-devel \ | ||
llvm-toolset ccache spectool curl \ | ||
&& ( [[ 8 != 8 ]] || dnf -qy module disable postgresql ) \ | ||
&& yum install -y postgresql17-server postgresql17-devel \ | ||
&& yum clean all | ||
|
||
# install jq to process JSON API responses | ||
RUN curl -sL https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64 \ | ||
-o /usr/bin/jq \ | ||
&& chmod +x /usr/bin/jq | ||
|
||
# install devtoolset-8-gcc on distros where it is available | ||
RUN { \ | ||
{ yum search devtoolset-8-gcc 2>&1 | grep 'No matches found' ; } \ | ||
|| yum install -y devtoolset-8-gcc devtoolset-8-libstdc++-devel; \ | ||
} \ | ||
&& yum clean all | ||
|
||
# install sphinx on distros with python3 | ||
RUN { \ | ||
{ yum search python3-pip 2>&1 | grep 'No matches found' ; } \ | ||
|| { \ | ||
yum install -y python3-pip && \ | ||
pip3 install sphinx==1.8 \ | ||
; \ | ||
} \ | ||
} \ | ||
&& yum clean all | ||
|
||
# install cmake, devtoolset and its dependencies to build azure sdk | ||
RUN yum -y install perl-IPC-Cmd libuuid-devel cmake3 | ||
|
||
# by default git 1.8.x is being installed in centos 7 | ||
# Git 2.7.1 is minimum requirement for cmake so we remove and reinstall latests git from an up-to-date repo | ||
# Symbolic link is not being created for cmake from cmake3 by default. Therefore, we need to create the link as well. | ||
# devtoolset-8-gcc-c++ is required to compile azure sdk in pg azure storage project | ||
RUN [[ almalinux != centos ]] || [[ 8 != 7 ]] || ( \ | ||
yum -y install perl-IPC-Cmd libuuid-devel cmake3 && \ | ||
ln -s /usr/bin/cmake3 /usr/bin/cmake && \ | ||
yum -y remove git && \ | ||
yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm && \ | ||
yum -y install git && \ | ||
yum -y install devtoolset-8-gcc-c++ && scl enable devtoolset-8 bash && \ | ||
yum -y install llvm-toolset-7 && \ | ||
yum clean all \ | ||
) | ||
|
||
# install python 3.8 to be able to execute tools scripts | ||
ARG PYTHON_VERSION=3.8.16 | ||
RUN set -ex \ | ||
&& curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash \ | ||
&& export PATH="$HOME/.pyenv/bin:$PATH" \ | ||
&& pyenv update \ | ||
&& pyenv install $PYTHON_VERSION \ | ||
&& pyenv global $PYTHON_VERSION \ | ||
&& pyenv rehash \ | ||
&& echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc \ | ||
&& echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc \ | ||
&& echo 'eval "$(pyenv init -)"' >> ~/.bashrc | ||
|
||
# install llvm-toolset-7 to be able to install clang 5.0 | ||
# clang 5.0 is required to build pg_azure_storage project | ||
ENV LD_LIBRARY_PATH=/opt/rh/llvm-toolset-7/root/usr/lib64/:$LD_LIBRARY_PATH | ||
ENV PATH=/opt/rh/llvm-toolset-7/root/usr/bin:$PATH | ||
|
||
RUN touch /rpmlintrc \ | ||
&& echo '%_build_pkgcheck %{_bindir}/rpmlint -f /rpmlintrc' >> /etc/rpm/macros | ||
|
||
# set PostgreSQL version, place scripts on path, and declare output volume | ||
ENV PGVERSION=17 \ | ||
PATH=/scripts:$PATH | ||
COPY scripts /scripts | ||
VOLUME /packages | ||
|
||
ENTRYPOINT ["/scripts/fetch_and_build_rpm"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please delete all comments for dropped os and postgres support
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed for all pipelines