|
@@ -170,6 +170,26 @@ jobs:
|
|
echo "Server has stopped"
|
|
echo "Server has stopped"
|
|
exit 1
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
+
|
|
|
|
+ # Check that service will reconnect to postgres when connection will be closed
|
|
|
|
+ status_code=$(curl --write-out %{http_code} -s --output /dev/null http://localhost:8081/api/tags)
|
|
|
|
+ if [[ "$status_code" -ne 200 ]] ; then
|
|
|
|
+ echo "Server has failed before postgres reconnect check"
|
|
|
|
+ exit 1
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ echo "Terminating all connections to postgres..."
|
|
|
|
+ python -c "import os, psycopg2 as pg2; \
|
|
|
|
+ conn = pg2.connect(dsn=os.environ['DATABASE_URL'].replace('+pool', '')); \
|
|
|
|
+ cur = conn.cursor(); \
|
|
|
|
+ cur.execute('SELECT pg_terminate_backend(psa.pid) FROM pg_stat_activity psa WHERE datname = current_database() AND pid <> pg_backend_pid();')"
|
|
|
|
+
|
|
|
|
+ status_code=$(curl --write-out %{http_code} -s --output /dev/null http://localhost:8081/api/tags)
|
|
|
|
+ if [[ "$status_code" -ne 200 ]] ; then
|
|
|
|
+ echo "Server has not reconnected to postgres after connection was closed: returned status $status_code"
|
|
|
|
+ exit 1
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
|
|
# - name: Test backend with MySQL
|
|
# - name: Test backend with MySQL
|
|
# if: success() || steps.sqlite.conclusion == 'failure' || steps.postgres.conclusion == 'failure'
|
|
# if: success() || steps.sqlite.conclusion == 'failure' || steps.postgres.conclusion == 'failure'
|