From 708a570ba000ad4b80401fb3f6c835e2b63be879 Mon Sep 17 00:00:00 2001 From: Yogesh Mahajan Date: Mon, 10 Mar 2025 15:39:41 +0530 Subject: [PATCH] On the Ubuntu runner, uninstall the default PostgreSQL version before installing any other PostgreSQL version. --- .github/workflows/run-feature-tests-pg.yml | 12 ++++++++++++ .github/workflows/run-python-tests-pg.yml | 15 ++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-feature-tests-pg.yml b/.github/workflows/run-feature-tests-pg.yml index 191453f2e..3e48bae9f 100644 --- a/.github/workflows/run-feature-tests-pg.yml +++ b/.github/workflows/run-feature-tests-pg.yml @@ -32,6 +32,18 @@ jobs: sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - + - name: Uninstall PostgreSQL if already present + run: | + if [ -n "$(ls /etc/postgresql/*/*/postgresql.conf 2>/dev/null)" ]; then + # Extract the major version from pg_config + installed_pg_version=$( pg_config --version | cut -d ' ' -f 2 | cut -d '.' -f 1 ) + echo "Installed PostgreSQL version: $installed_pg_version" + if [ $installed_pg_version != ${{ matrix.pgver }} ]; then + sudo pg_dropcluster $installed_pg_version main --stop + sudo apt-get -y remove "postgresql-${installed_pg_version}" + fi + fi + - name: Install platform dependencies run: | sudo apt update diff --git a/.github/workflows/run-python-tests-pg.yml b/.github/workflows/run-python-tests-pg.yml index 3261a9167..4489a06cc 100644 --- a/.github/workflows/run-python-tests-pg.yml +++ b/.github/workflows/run-python-tests-pg.yml @@ -34,6 +34,19 @@ jobs: sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - + - name: Uninstall PostgreSQL if already present on linux + if: ${{ matrix.os == 'ubuntu-22.04' }} + run: | + if [ -n "$(ls /etc/postgresql/*/*/postgresql.conf 2>/dev/null)" ]; then + # Extract the major version from pg_config + installed_pg_version=$( pg_config --version | cut -d ' ' -f 2 | cut -d '.' -f 1 ) + echo "Installed PostgreSQL version: $installed_pg_version" + if [ $installed_pg_version != ${{ matrix.pgver }} ]; then + sudo pg_dropcluster $installed_pg_version main --stop + sudo apt-get -y remove "postgresql-${installed_pg_version}" + fi + fi + - name: Install platform dependencies on Linux if: ${{ matrix.os == 'ubuntu-22.04' }} run: | @@ -46,7 +59,7 @@ jobs: brew install postgresql@${{ matrix.pgver }} echo "/opt/homebrew/opt/postgresql@${{ matrix.pgver }}/bin" >> $GITHUB_PATH - - name: Uninstall PostgreSQL if already present + - name: Uninstall PostgreSQL if already present on windows if: ${{ matrix.os == 'windows-latest' }} run: | if exist "C:\Program Files\PostgreSQL\{{ matrix.pgver }}\uninstall-postgresql.exe" (