Skip to content

RPM packages

RPM packages #689

Workflow file for this run

# Test rpm package installation for latest version
name: RPM packages
on:
schedule:
# run daily 0:00 on main branch
- cron: '0 0 * * *'
push:
tags:
- '*'
branches:
- release_test
jobs:
rpm_tests:
name: RPM ${{ matrix.image }} PG${{ matrix.pg }} ${{ matrix.license }}
runs-on: ubuntu-latest
container:
image: ${{ matrix.image }}
strategy:
fail-fast: false
matrix:
image: [ "centos:centos7", "rockylinux:8" ]
pg: [ 12, 13, 14 ]
license: [ "TSL", "Apache"]
include:
- license: Apache
pkg_suffix: "-oss"
steps:
- name: Add repositories
run: |
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL
- name: Install timescaledb
run: |
yum update -y
if command -v dnf; then dnf -qy module disable postgresql; fi
yum install -y timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }} sudo wget
sudo -u postgres /usr/pgsql-${{ matrix.pg }}/bin/initdb -D /var/lib/pgsql/${{ matrix.pg }}/data
timescaledb-tune --quiet --yes --pg-config /usr/pgsql-${{ matrix.pg }}/bin/pg_config
- name: List available versions
run: |
yum --showduplicates list timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }}
- name: Show files in package
run: |
rpm -ql timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }}
- uses: actions/checkout@v2
- name: Read versions
id: versions
run: |
# read expected version from version.config
# version will only be a proper version in a release branch so we use update_from_version
# as fallback for main
if grep '^version = [0-9.]\+$' version.config; then
version=$(grep '^version = ' version.config | sed -e 's!^version = !!')
else
version=$(grep '^update_from_version = ' version.config | sed -e 's!^update_from_version = !!')
fi
echo "::set-output name=version::${version}"
- name: Test Installation
run: |
sudo -u postgres /usr/pgsql-${{ matrix.pg }}/bin/pg_ctl -D /var/lib/pgsql/${{ matrix.pg }}/data start
while ! /usr/pgsql-${{ matrix.pg }}/bin/pg_isready; do sleep 1; done
sudo -u postgres psql -X -c "CREATE EXTENSION timescaledb;SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb';"
installed_version=$(sudo -u postgres psql -X -t -c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" | sed -e 's! !!g')
if [ "${{ steps.versions.outputs.version }}" != "$installed_version" ];then
false
fi
- name: Test Downgrade
run: |
# since this runs nightly on main we have to get the previous version from the last released version and not current branch
prev_version=$(wget --quiet -O - https://raw.githubusercontent.com/timescale/timescaledb/${{ steps.versions.outputs.version }}/version.config | grep update_from_version | sed -e 's!update_from_version = !!')
yum downgrade -y timescaledb-2${{ matrix.pkg_suffix }}-postgresql-${{ matrix.pg }}-${prev_version}
sudo -u postgres psql -X -c "ALTER EXTENSION timescaledb UPDATE TO '${prev_version}';SELECT extname,extversion,version() FROM pg_extension WHERE extname='timescaledb';"
installed_version=$(sudo -u postgres psql -X -t -c "SELECT extversion FROM pg_extension WHERE extname='timescaledb';" | sed -e 's! !!g')
if [ "$prev_version" != "$installed_version" ];then
false
fi