]> git.openstreetmap.org Git - nominatim.git/blobdiff - .github/actions/setup-postgresql/action.yml
release 4.5.0.post6
[nominatim.git] / .github / actions / setup-postgresql / action.yml
index 98086f2d0a40acd0bab26b47a95e4d05e27afbfc..416ced5fb4373b8b7cd2123a52dc70a0f317617b 100644 (file)
@@ -1,26 +1,49 @@
 name: 'Setup Postgresql and Postgis'
 
+inputs:
+    postgresql-version:
+        description: 'Version of PostgreSQL to install'
+        required: true
+    postgis-version:
+        description: 'Version of Postgis to install'
+        required: true
+
 runs:
     using: "composite"
 
     steps:
-        - name: Install postgis
+        - name: Remove existing PostgreSQL
+          run: |
+              sudo apt-get purge -yq postgresql*
+              sudo apt install curl ca-certificates gnupg
+              curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null
+              sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
+              sudo apt-get update -qq
+
+          shell: bash
+
+        - name: Install PostgreSQL
           run: |
-            sudo apt-get update -qq
-            sudo apt-get install -y -qq postgresql-13-postgis-3 postgresql-13-postgis-3-scripts postgresql-server-dev-13
+              sudo apt-get install -y -qq --no-install-suggests --no-install-recommends postgresql-client-${PGVER} postgresql-${PGVER}-postgis-${POSTGISVER} postgresql-${PGVER}-postgis-${POSTGISVER}-scripts postgresql-contrib-${PGVER} postgresql-${PGVER}
           shell: bash
+          env:
+              PGVER: ${{ inputs.postgresql-version }}
+              POSTGISVER: ${{ inputs.postgis-version }}
 
         - name: Adapt postgresql configuration
           run: |
-              echo 'fsync = off' | sudo tee /etc/postgresql/13/main/conf.d/local.conf
-              echo 'synchronous_commit = off' | sudo tee -a /etc/postgresql/13/main/conf.d/local.conf
-              echo 'full_page_writes = off' | sudo tee -a /etc/postgresql/13/main/conf.d/local.conf
-              echo 'shared_buffers = 1GB' | sudo tee -a /etc/postgresql/13/main/conf.d/local.conf
+              echo 'fsync = off' | sudo tee /etc/postgresql/${PGVER}/main/conf.d/local.conf
+              echo 'synchronous_commit = off' | sudo tee -a /etc/postgresql/${PGVER}/main/conf.d/local.conf
+              echo 'full_page_writes = off' | sudo tee -a /etc/postgresql/${PGVER}/main/conf.d/local.conf
+              echo 'shared_buffers = 1GB' | sudo tee -a /etc/postgresql/${PGVER}/main/conf.d/local.conf
+              echo 'port = 5432' | sudo tee -a /etc/postgresql/${PGVER}/main/conf.d/local.conf
           shell: bash
+          env:
+              PGVER: ${{ inputs.postgresql-version }}
 
         - name: Setup database
           run: |
-              sudo systemctl start postgresql
+              sudo systemctl restart postgresql
               sudo -u postgres createuser -S www-data
               sudo -u postgres createuser -s runner
           shell: bash