setup-postgres

May 7, 2026 · View on GitHub

The missing action for Postgres :tada:

  • Faster (with the default version) and simpler than containers
  • Works on Linux, Mac, and Windows
  • Supports different versions

Build Status

Getting Started

Add it as a step to your workflow

      - uses: ankane/setup-postgres@v1

The default credentials are:

  • user: runner (the OS user) on Linux and Mac, postgres on Windows
  • password: none
  • host: localhost or socket
  • port: 5432

Versions

Specify a version

      - uses: ankane/setup-postgres@v1
        with:
          postgres-version: 18

Currently supports

Version1817161514
ubuntu-24.04default
ubuntu-24.04-armdefault
ubuntu-22.04default
ubuntu-22.04-armdefault
macos-26default
macos-15default
macos-15-inteldefault
macos-14default
windows-2025default
windows-2022default

Test against multiple versions

    strategy:
      matrix:
        postgres-version: [18, 17, 16, 15, 14]
    steps:
      - uses: ankane/setup-postgres@v1
        with:
          postgres-version: ${{ matrix.postgres-version }}

Options

Create a database

      - uses: ankane/setup-postgres@v1
        with:
          database: testdb

Specify a user

      - uses: ankane/setup-postgres@v1
        with:
          user: testuser

Set postgresql.conf config

      - uses: ankane/setup-postgres@v1
        with:
          config: |
            shared_preload_libraries = 'pg_stat_statements'

Install development files (for building extensions)

      - uses: ankane/setup-postgres@v1
        with:
          dev-files: true

Extra Steps

Run queries

      - run: psql -d testdb -c 'SHOW server_version'

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help: