...

Text file src/github.com/jackc/pgx/v5/.github/workflows/ci.yml

Documentation: github.com/jackc/pgx/v5/.github/workflows

     1name: CI
     2
     3on:
     4  push:
     5    branches: [master]
     6  pull_request:
     7    branches: [master]
     8
     9jobs:
    10  test:
    11    name: Test
    12    runs-on: ubuntu-22.04
    13
    14    strategy:
    15      matrix:
    16        go-version: ["1.20", "1.21"]
    17        pg-version: [12, 13, 14, 15, 16, cockroachdb]
    18        include:
    19          - pg-version: 12
    20            pgx-test-database: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    21            pgx-test-unix-socket-conn-string: "host=/var/run/postgresql dbname=pgx_test"
    22            pgx-test-tcp-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    23            pgx-test-scram-password-conn-string: "host=127.0.0.1 user=pgx_scram password=secret dbname=pgx_test"
    24            pgx-test-md5-password-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    25            pgx-test-plain-password-conn-string: "host=127.0.0.1 user=pgx_pw password=secret dbname=pgx_test"
    26            pgx-test-tls-conn-string: "host=localhost user=pgx_ssl password=secret sslmode=verify-full sslrootcert=/tmp/ca.pem dbname=pgx_test"
    27            pgx-ssl-password: certpw
    28            pgx-test-tls-client-conn-string: "host=localhost user=pgx_sslcert sslmode=verify-full sslrootcert=/tmp/ca.pem sslcert=/tmp/pgx_sslcert.crt sslkey=/tmp/pgx_sslcert.key dbname=pgx_test"
    29          - pg-version: 13
    30            pgx-test-database: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    31            pgx-test-unix-socket-conn-string: "host=/var/run/postgresql dbname=pgx_test"
    32            pgx-test-tcp-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    33            pgx-test-scram-password-conn-string: "host=127.0.0.1 user=pgx_scram password=secret dbname=pgx_test"
    34            pgx-test-md5-password-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    35            pgx-test-plain-password-conn-string: "host=127.0.0.1 user=pgx_pw password=secret dbname=pgx_test"
    36            pgx-test-tls-conn-string: "host=localhost user=pgx_ssl password=secret sslmode=verify-full sslrootcert=/tmp/ca.pem dbname=pgx_test"
    37            pgx-ssl-password: certpw
    38            pgx-test-tls-client-conn-string: "host=localhost user=pgx_sslcert sslmode=verify-full sslrootcert=/tmp/ca.pem sslcert=/tmp/pgx_sslcert.crt sslkey=/tmp/pgx_sslcert.key dbname=pgx_test"
    39          - pg-version: 14
    40            pgx-test-database: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    41            pgx-test-unix-socket-conn-string: "host=/var/run/postgresql dbname=pgx_test"
    42            pgx-test-tcp-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    43            pgx-test-scram-password-conn-string: "host=127.0.0.1 user=pgx_scram password=secret dbname=pgx_test"
    44            pgx-test-md5-password-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    45            pgx-test-plain-password-conn-string: "host=127.0.0.1 user=pgx_pw password=secret dbname=pgx_test"
    46            pgx-test-tls-conn-string: "host=localhost user=pgx_ssl password=secret sslmode=verify-full sslrootcert=/tmp/ca.pem dbname=pgx_test"
    47            pgx-ssl-password: certpw
    48            pgx-test-tls-client-conn-string: "host=localhost user=pgx_sslcert sslmode=verify-full sslrootcert=/tmp/ca.pem sslcert=/tmp/pgx_sslcert.crt sslkey=/tmp/pgx_sslcert.key dbname=pgx_test"
    49          - pg-version: 15
    50            pgx-test-database: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    51            pgx-test-unix-socket-conn-string: "host=/var/run/postgresql dbname=pgx_test"
    52            pgx-test-tcp-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    53            pgx-test-scram-password-conn-string: "host=127.0.0.1 user=pgx_scram password=secret dbname=pgx_test"
    54            pgx-test-md5-password-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    55            pgx-test-plain-password-conn-string: "host=127.0.0.1 user=pgx_pw password=secret dbname=pgx_test"
    56            pgx-test-tls-conn-string: "host=localhost user=pgx_ssl password=secret sslmode=verify-full sslrootcert=/tmp/ca.pem dbname=pgx_test"
    57            pgx-ssl-password: certpw
    58            pgx-test-tls-client-conn-string: "host=localhost user=pgx_sslcert sslmode=verify-full sslrootcert=/tmp/ca.pem sslcert=/tmp/pgx_sslcert.crt sslkey=/tmp/pgx_sslcert.key dbname=pgx_test"
    59          - pg-version: 16
    60            pgx-test-database: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    61            pgx-test-unix-socket-conn-string: "host=/var/run/postgresql dbname=pgx_test"
    62            pgx-test-tcp-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    63            pgx-test-scram-password-conn-string: "host=127.0.0.1 user=pgx_scram password=secret dbname=pgx_test"
    64            pgx-test-md5-password-conn-string: "host=127.0.0.1 user=pgx_md5 password=secret dbname=pgx_test"
    65            pgx-test-plain-password-conn-string: "host=127.0.0.1 user=pgx_pw password=secret dbname=pgx_test"
    66            pgx-test-tls-conn-string: "host=localhost user=pgx_ssl password=secret sslmode=verify-full sslrootcert=/tmp/ca.pem dbname=pgx_test"
    67            pgx-ssl-password: certpw
    68            pgx-test-tls-client-conn-string: "host=localhost user=pgx_sslcert sslmode=verify-full sslrootcert=/tmp/ca.pem sslcert=/tmp/pgx_sslcert.crt sslkey=/tmp/pgx_sslcert.key dbname=pgx_test"
    69          - pg-version: cockroachdb
    70            pgx-test-database: "postgresql://root@127.0.0.1:26257/pgx_test?sslmode=disable&experimental_enable_temp_tables=on"
    71
    72    steps:
    73      - name: Check out code into the Go module directory
    74        uses: actions/checkout@v4
    75
    76      - name: Set up Go ${{ matrix.go-version }}
    77        uses: actions/setup-go@v5
    78        with:
    79          go-version: ${{ matrix.go-version }}
    80
    81      - name: Setup database server for testing
    82        run: ci/setup_test.bash
    83        env:
    84          PGVERSION: ${{ matrix.pg-version }}
    85
    86      # - name: Setup upterm session
    87      #   uses: lhotari/action-upterm@v1
    88      #   with:
    89      #     ## limits ssh access and adds the ssh public key for the user which triggered the workflow
    90      #     limit-access-to-actor: true
    91      #   env:
    92      #     PGX_TEST_DATABASE: ${{ matrix.pgx-test-database }}
    93      #     PGX_TEST_UNIX_SOCKET_CONN_STRING: ${{ matrix.pgx-test-unix-socket-conn-string }}
    94      #     PGX_TEST_TCP_CONN_STRING: ${{ matrix.pgx-test-tcp-conn-string }}
    95      #     PGX_TEST_SCRAM_PASSWORD_CONN_STRING: ${{ matrix.pgx-test-scram-password-conn-string }}
    96      #     PGX_TEST_MD5_PASSWORD_CONN_STRING: ${{ matrix.pgx-test-md5-password-conn-string }}
    97      #     PGX_TEST_PLAIN_PASSWORD_CONN_STRING: ${{ matrix.pgx-test-plain-password-conn-string }}
    98      #     PGX_TEST_TLS_CONN_STRING: ${{ matrix.pgx-test-tls-conn-string }}
    99      #     PGX_SSL_PASSWORD: ${{ matrix.pgx-ssl-password }}
   100      #     PGX_TEST_TLS_CLIENT_CONN_STRING: ${{ matrix.pgx-test-tls-client-conn-string }}
   101
   102      - name: Check formatting
   103        run: |
   104          gofmt -l -s -w .
   105          git status
   106          git diff --exit-code
   107
   108      - name: Test
   109        run: go test -v -race ./...
   110        env:
   111          PGX_TEST_DATABASE: ${{ matrix.pgx-test-database }}
   112          PGX_TEST_UNIX_SOCKET_CONN_STRING: ${{ matrix.pgx-test-unix-socket-conn-string }}
   113          PGX_TEST_TCP_CONN_STRING: ${{ matrix.pgx-test-tcp-conn-string }}
   114          PGX_TEST_SCRAM_PASSWORD_CONN_STRING: ${{ matrix.pgx-test-scram-password-conn-string }}
   115          PGX_TEST_MD5_PASSWORD_CONN_STRING: ${{ matrix.pgx-test-md5-password-conn-string }}
   116          PGX_TEST_PLAIN_PASSWORD_CONN_STRING: ${{ matrix.pgx-test-plain-password-conn-string }}
   117          # TestConnectTLS fails. However, it succeeds if I connect to the CI server with upterm and run it. Give up on that test for now.
   118          # PGX_TEST_TLS_CONN_STRING: ${{ matrix.pgx-test-tls-conn-string }}
   119          PGX_SSL_PASSWORD: ${{ matrix.pgx-ssl-password }}
   120          PGX_TEST_TLS_CLIENT_CONN_STRING: ${{ matrix.pgx-test-tls-client-conn-string }}
   121
   122  test-windows:
   123    name: Test Windows
   124    runs-on: windows-latest
   125    strategy:
   126      matrix:
   127        go-version: ["1.20", "1.21"]
   128
   129    steps:
   130      - name: Setup PostgreSQL
   131        id: postgres
   132        uses: ikalnytskyi/action-setup-postgres@v4
   133        with:
   134          database: pgx_test
   135
   136      - name: Check out code into the Go module directory
   137        uses: actions/checkout@v4
   138
   139      - name: Set up Go ${{ matrix.go-version }}
   140        uses: actions/setup-go@v5
   141        with:
   142          go-version: ${{ matrix.go-version }}
   143
   144      - name: Initialize test database
   145        run: |
   146          psql -f testsetup/postgresql_setup.sql pgx_test
   147        env:
   148          PGSERVICE: ${{ steps.postgres.outputs.service-name }}
   149        shell: bash
   150
   151      - name: Test
   152        run: go test -v -race  ./...
   153        env:
   154          PGX_TEST_DATABASE: ${{ steps.postgres.outputs.connection-uri }}

View as plain text