add pg_auto_failover extension #397
Workflow file for this run
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
name: Smoke Test Docker Image | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
env: | |
ORG: timescaledev | |
TS_VERSION: main | |
PLATFORM: linux/amd64 | |
jobs: | |
smoketest: | |
name: PG${{ matrix.pg }}-${{ matrix.type }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
pg: [15] | |
type: ['normal', 'bitnami'] | |
steps: | |
- name: Check out the source | |
uses: actions/checkout@v3 | |
- name: Build Docker Image for TimescaleDB | |
run: | | |
if [ ${{ matrix.type }} == bitnami ] | |
then | |
cd bitnami | |
fi | |
make image PG_VER=pg${{ matrix.pg }} TAG_VERSION=smoketest-image BETA=1 | |
- name: Install psql | |
run: sudo apt install postgresql-client | |
- name: Run the smoke test | |
run: | | |
set -eu | |
export PGHOST=localhost | |
export PGUSER=postgres | |
export PGPASSWORD=test1234 | |
docker container stop smoketest-container || true | |
docker container rm smoketest-container || true | |
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=${PGPASSWORD} --name smoketest-container smoketest-image | |
for _ in {1..120} | |
do | |
if [ -z "$(docker container ls -q --filter name=smoketest-container)" ] | |
then | |
echo "Smoketest container is not running" | |
exit 1 | |
fi | |
if psql -c "select 1" | |
then | |
echo "Test pg_cron Extension" | |
psql -c "CREATE EXTENSION pg_cron"; | |
psql -c "SELECT cron.schedule('30 3 * * 6',\$\$DELETE FROM events WHERE event_time < now() - interval '1 week'\$\$)"; | |
echo "Test PostGIS Extension" | |
psql -c "CREATE EXTENSION postgis;" || true | |
psql -c "SELECT PostGIS_Version();" | |
echo "Test PostGIS Geometry Function" | |
psql -c "CREATE TABLE test_geometry_table (id serial primary key, geom geometry(Point, 4326));" | |
psql -c "INSERT INTO test_geometry_table (geom) VALUES (ST_GeomFromText('POINT(0 0)', 4326));" | |
psql -c "SELECT * FROM test_geometry_table;" | |
echo "Test Citus Extension" | |
psql -c "CREATE EXTENSION citus;" | |
psql -c "SELECT * FROM citus_version();" | |
echo "Test Citus Distributed Table" | |
psql -c "CREATE TABLE test_distributed_table (id serial primary key, data text);" | |
psql -c "SELECT create_distributed_table('test_distributed_table', 'id');" | |
psql -c "INSERT INTO test_distributed_table (data) VALUES ('test data');" | |
psql -c "SELECT * FROM test_distributed_table;" | |
echo "Test pg_repack Extension" | |
psql -c "CREATE EXTENSION pg_repack;" | |
psql -c "select repack.version(), repack.version_sql();" | |
echo "Test pgautofailover Extension" | |
psql -c "CREATE EXTENSION pgautofailover CASCADE;" | |
psql -c "SELECT pgautofailover.formation_settings();" | |
break | |
fi | |
sleep 1 | |
done | |
if ! psql -c "select 1" | |
then | |
echo "Cannot connect to PostgreSQL" | |
exit 1 | |
fi | |
- name: Show the logs | |
if: always() | |
run: | | |
docker logs smoketest-container |