|
1 | | -name: Test |
2 | | - |
3 | | -on: [push, pull_request] |
| 1 | +name: 'test' |
| 2 | +on: |
| 3 | + pull_request: |
| 4 | + push: |
| 5 | +#on: |
| 6 | +# pull_request: |
| 7 | +# paths: ['**.go', 'go.mod', '.github/workflows/*'] |
| 8 | +# push: |
| 9 | +# branches: ['main'] |
4 | 10 |
|
5 | 11 | jobs: |
6 | | - staticcheck: |
7 | | - name: 'staticcheck' |
8 | | - runs-on: 'ubuntu-latest' |
9 | | - steps: |
10 | | - - uses: 'actions/checkout@v6' |
11 | | - - uses: 'dominikh/staticcheck-action@v1.3.1' |
12 | | - with: {version: '2025.1.1'} |
| 12 | + #staticcheck: |
| 13 | + # name: 'staticcheck' |
| 14 | + # runs-on: 'ubuntu-latest' |
| 15 | + # steps: |
| 16 | + # - uses: 'actions/checkout@v6' |
| 17 | + # - uses: 'dominikh/staticcheck-action@v1.3.1' |
| 18 | + # with: {version: '2025.1.1'} |
| 19 | + |
| 20 | + #test: |
| 21 | + # runs-on: 'ubuntu-latest' |
| 22 | + # strategy: |
| 23 | + # fail-fast: false |
| 24 | + # matrix: |
| 25 | + # #pg: ['14', '15', '16', '17'] |
| 26 | + # #go: ['1.18', '1.25'] |
| 27 | + # pg: ['17'] |
| 28 | + # go: ['1.25'] |
| 29 | + # steps: |
| 30 | + # - uses: 'actions/checkout@v6' |
| 31 | + # - uses: 'actions/setup-go@v6' |
| 32 | + # with: |
| 33 | + # go-version: ${{ matrix.go }} |
| 34 | + # - name: 'Run tests' |
| 35 | + # run: | |
| 36 | + # docker compose up pg${{ matrix.pg }} -d --wait || exit 1 |
| 37 | + # echo '127.0.0.1 postgres' | sudo tee -a /etc/hosts |
| 38 | + # |
| 39 | + # echo 'PQTEST_BINARY_PARAMETERS=no go test -race ./...' |
| 40 | + # PQTEST_BINARY_PARAMETERS=no go test -race ./... |
| 41 | + # |
| 42 | + # echo 'PQTEST_BINARY_PARAMETERS=yes go test -race ./...' |
| 43 | + # PQTEST_BINARY_PARAMETERS=yes go test -race ./... |
13 | 44 |
|
14 | | - test: |
15 | | - runs-on: ubuntu-latest |
| 45 | + #macos: |
| 46 | + # runs-on: 'macos-15-intel' |
| 47 | + # strategy: |
| 48 | + # fail-fast: false |
| 49 | + # matrix: |
| 50 | + # #pg: ['14', '15', '16', '17'] |
| 51 | + # #go: ['1.18', '1.25'] |
| 52 | + # pg: ['17'] |
| 53 | + # go: ['1.25'] |
| 54 | + # steps: |
| 55 | + # - uses: 'actions/checkout@v6' |
| 56 | + # - uses: 'douglascamata/setup-docker-macos-action@v1' |
| 57 | + # - uses: 'actions/setup-go@v6' |
| 58 | + # with: |
| 59 | + # go-version: ${{ matrix.go }} |
| 60 | + # - name: 'Run tests' |
| 61 | + # run: | |
| 62 | + # docker compose up pg${{ matrix.pg }} -d --wait || exit 1 |
| 63 | + # echo '127.0.0.1 postgres' | sudo tee -a /etc/hosts |
| 64 | + # |
| 65 | + # echo 'PQTEST_BINARY_PARAMETERS=no go test -race ./...' |
| 66 | + # PQTEST_BINARY_PARAMETERS=no go test -race ./... |
| 67 | + # |
| 68 | + # echo 'PQTEST_BINARY_PARAMETERS=yes go test -race ./...' |
| 69 | + # PQTEST_BINARY_PARAMETERS=yes go test -race ./... |
| 70 | + |
| 71 | + windows: |
| 72 | + runs-on: 'windows-latest' |
16 | 73 | strategy: |
17 | 74 | fail-fast: false |
18 | 75 | matrix: |
19 | | - postgres: ['17', '16', '15', '14'] |
20 | | - go: ['1.25', '1.18'] |
| 76 | + #pg: ['14', '15', '16', '17'] |
| 77 | + #go: ['1.18', '1.25'] |
| 78 | + pg: ['17'] |
| 79 | + go: ['1.25'] |
21 | 80 | steps: |
22 | | - - name: setup postgres pre-reqs |
23 | | - run: | |
24 | | - mkdir init |
25 | | - cat <<CONF > init/root.crt |
26 | | - -----BEGIN CERTIFICATE----- |
27 | | - MIIEBjCCAu6gAwIBAgIJAPizR+OD14YnMA0GCSqGSIb3DQEBCwUAMF4xCzAJBgNV |
28 | | - BAYTAlVTMQ8wDQYDVQQIDAZOZXZhZGExEjAQBgNVBAcMCUxhcyBWZWdhczEaMBgG |
29 | | - A1UECgwRZ2l0aHViLmNvbS9saWIvcHExDjAMBgNVBAMMBXBxIENBMB4XDTIxMDkw |
30 | | - MjAxNTUwMloXDTMxMDkwMzAxNTUwMlowXjELMAkGA1UEBhMCVVMxDzANBgNVBAgM |
31 | | - Bk5ldmFkYTESMBAGA1UEBwwJTGFzIFZlZ2FzMRowGAYDVQQKDBFnaXRodWIuY29t |
32 | | - L2xpYi9wcTEOMAwGA1UEAwwFcHEgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw |
33 | | - ggEKAoIBAQDb9d6sjdU6GdibGrXRMOHREH3MRUS8T4TFqGgPEGVDP/V5bAZlBSGP |
34 | | - AN0o9DTyVLcbQpBt8zMTw9KeIzIIe5NIVkSmA16lw/YckGhOM+kZIkiDuE6qt5Ia |
35 | | - OQCRMdXkZ8ejG/JUu+rHU8FJZL8DE+jyYherzdjkeVAQ7JfzxAwW2Dl7T/47g337 |
36 | | - Pwmf17AEb8ibSqmXyUN7R5NhJQs+hvaYdNagzdx91E1H+qlyBvmiNeasUQljLvZ+ |
37 | | - Y8wAuU79neA+d09O4PBiYwV17rSP6SZCeGE3oLZviL/0KM9Xig88oB+2FmvQ6Zxa |
38 | | - L7SoBlqS+5pBZwpH7eee/wCIKAnJtMAJAgMBAAGjgcYwgcMwDwYDVR0TAQH/BAUw |
39 | | - AwEB/zAdBgNVHQ4EFgQUfIXEczahbcM2cFrwclJF7GbdajkwgZAGA1UdIwSBiDCB |
40 | | - hYAUfIXEczahbcM2cFrwclJF7GbdajmhYqRgMF4xCzAJBgNVBAYTAlVTMQ8wDQYD |
41 | | - VQQIDAZOZXZhZGExEjAQBgNVBAcMCUxhcyBWZWdhczEaMBgGA1UECgwRZ2l0aHVi |
42 | | - LmNvbS9saWIvcHExDjAMBgNVBAMMBXBxIENBggkA+LNH44PXhicwDQYJKoZIhvcN |
43 | | - AQELBQADggEBABFyGgSz2mHVJqYgX1Y+7P+MfKt83cV2uYDGYvXrLG2OGiCilVul |
44 | | - oTBG+8omIMSHOsQZvWMpA5H0tnnlQHrKpKpUyKkSL+Wv5GL0UtBmHX7mVRiaK2l4 |
45 | | - q2BjRaQUitp/FH4NSdXtVrMME5T1JBBZHsQkNL3cNRzRKwY/Vj5UGEDxDS7lILUC |
46 | | - e01L4oaK0iKQn4beALU+TvKoAHdPvoxpPpnhkF5ss9HmdcvRktJrKZemDJZswZ7/ |
47 | | - +omx8ZPIYYUH5VJJYYE88S7guAt+ZaKIUlel/t6xPbo2ZySFSg9u1uB99n+jTo3L |
48 | | - 1rAxFnN3FCX2jBqgP29xMVmisaN5k04UmyI= |
49 | | - -----END CERTIFICATE----- |
50 | | - CONF |
51 | | - cat <<CONF > init/server.crt |
52 | | - -----BEGIN CERTIFICATE----- |
53 | | - MIIDqzCCApOgAwIBAgIJAPiewLrOyYipMA0GCSqGSIb3DQEBCwUAMF4xCzAJBgNV |
54 | | - BAYTAlVTMQ8wDQYDVQQIDAZOZXZhZGExEjAQBgNVBAcMCUxhcyBWZWdhczEaMBgG |
55 | | - A1UECgwRZ2l0aHViLmNvbS9saWIvcHExDjAMBgNVBAMMBXBxIENBMB4XDTIxMDkw |
56 | | - MjAxNTUwMloXDTMxMDkwMzAxNTUwMlowTjELMAkGA1UEBhMCVVMxDzANBgNVBAgM |
57 | | - Bk5ldmFkYTESMBAGA1UEBwwJTGFzIFZlZ2FzMRowGAYDVQQKDBFnaXRodWIuY29t |
58 | | - L2xpYi9wcTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKf6H4UzmANN |
59 | | - QiQJe92Mf3ETMYmpZKNNO9DPEHyNLIkag+XwMrBTdcCK0mLvsNCYpXuBN6703KCd |
60 | | - WAFOeMmj7gOsWtvjt5Xm6bRHLgegekXzcG/jDwq/wyzeDzr/YkITuIlG44Lf9lhY |
61 | | - FLwiHlHOWHnwrZaEh6aU//02aQkzyX5INeXl/3TZm2G2eIH6AOxOKOU27MUsyVSQ |
62 | | - 5DE+SDKGcRP4bElueeQWvxAXNMZYb7sVSDdfHI3zr32K4k/tC8x0fZJ5XN/dvl4t |
63 | | - 4N4MrYlmDO5XOrb/gQH1H4iu6+5EMDfZYab4fkThnNFdfFqu4/8Scv7KZ8mWqpKM |
64 | | - fGAjEPctQi0CAwEAAaN8MHowHQYDVR0OBBYEFENExPbmDyFB2AJUdbMvVyhlNPD5 |
65 | | - MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMBMGA1UdEQQMMAqCCHBvc3RncmVzMCwG |
66 | | - CWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTANBgkq |
67 | | - hkiG9w0BAQsFAAOCAQEAMRVbV8RiEsmp9HAtnVCZmRXMIbgPGrqjeSwk586s4K8v |
68 | | - BSqNCqxv6s5GfCRmDYiqSqeuCVDtUJS1HsTmbxVV7Ke71WMo+xHR1ICGKOa8WGCb |
69 | | - TGsuicG5QZXWaxeMOg4s0qpKmKko0d1aErdVsanU5dkrVS7D6729Ffnzu4lwApk6 |
70 | | - invAB67p8u7sojwqRq5ce0vRaG+YFylTrWomF9kauEb8gKbQ9Xc7QfX+h+UH/mq9 |
71 | | - Nvdj8LOHp6/82bZdnsYUOtV4lS1IA/qzeXpqBphxqfWabD1yLtkyJyImZKq8uIPp |
72 | | - 0CG4jhObPdWcCkXD6bg3QK3mhwlC79OtFgxWmldCRQ== |
73 | | - -----END CERTIFICATE----- |
74 | | - CONF |
75 | | - cat <<CONF > init/server.key |
76 | | - -----BEGIN PRIVATE KEY----- |
77 | | - MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCn+h+FM5gDTUIk |
78 | | - CXvdjH9xEzGJqWSjTTvQzxB8jSyJGoPl8DKwU3XAitJi77DQmKV7gTeu9NygnVgB |
79 | | - TnjJo+4DrFrb47eV5um0Ry4HoHpF83Bv4w8Kv8Ms3g86/2JCE7iJRuOC3/ZYWBS8 |
80 | | - Ih5Rzlh58K2WhIemlP/9NmkJM8l+SDXl5f902ZthtniB+gDsTijlNuzFLMlUkOQx |
81 | | - PkgyhnET+GxJbnnkFr8QFzTGWG+7FUg3XxyN8699iuJP7QvMdH2SeVzf3b5eLeDe |
82 | | - DK2JZgzuVzq2/4EB9R+IruvuRDA32WGm+H5E4ZzRXXxaruP/EnL+ymfJlqqSjHxg |
83 | | - IxD3LUItAgMBAAECggEAOE2naQ9tIZYw2EFxikZApVcooJrtx6ropMnzHbx4NBB2 |
84 | | - K4mChAXFj184u77ZxmGT/jzGvFcI6LE0wWNbK0NOUV7hKZk/fPhkV3AQZrAMrAu4 |
85 | | - IVi7PwAd3JkmA8F8XuebUDA5rDGDsgL8GD9baFJA58abeLs9eMGyuF4XgOUh4bip |
86 | | - hgHa76O2rcDWNY5HZqqRslw75FzlYkB0PCts/UJxSswj70kTTihyOhDlrm2TnyxI |
87 | | - ne54UbGRrpfs9wiheSGLjDG81qZToBHQDwoAnjjZhu1VCaBISuGbgZrxyyRyqdnn |
88 | | - xPW+KczMv04XyvF7v6Pz+bUEppalLXGiXnH5UtWvZQKBgQDTPCdMpNE/hwlq4nAw |
89 | | - Kf42zIBWfbnMLVWYoeDiAOhtl9XAUAXn76xe6Rvo0qeAo67yejdbJfRq3HvGyw+q |
90 | | - 4PS8r9gXYmLYIPQxSoLL5+rFoBCN3qFippfjLB1j32mp7+15KjRj8FF2r6xIN8fu |
91 | | - XatSRsaqmvCWYLDRv/rbHnxwkwKBgQDLkyfFLF7BtwtPWKdqrwOM7ip1UKh+oDBS |
92 | | - vkCQ08aEFRBU7T3jChsx5GbaW6zmsSBwBwcrHclpSkz7n3aq19DDWObJR2p80Fma |
93 | | - rsXeIcvtEpkvT3pVX268P5d+XGs1kxgFunqTysG9yChW+xzcs5MdKBzuMPPn7rL8 |
94 | | - MKAzdar6PwKBgEypkzW8x3h/4Moa3k6MnwdyVs2NGaZheaRIc95yJ+jGZzxBjrMr |
95 | | - h+p2PbvU4BfO0AqOkpKRBtDVrlJqlggVVp04UHvEKE16QEW3Xhr0037f5cInX3j3 |
96 | | - Lz6yXwRFLAsR2aTUzWjL6jTh8uvO2s/GzQuyRh3a16Ar/WBShY+K0+zjAoGATnLT |
97 | | - xZjWnyHRmu8X/PWakamJ9RFzDPDgDlLAgM8LVgTj+UY/LgnL9wsEU6s2UuP5ExKy |
98 | | - QXxGDGwUhHar/SQTj+Pnc7Mwpw6HKSOmnnY5po8fNusSwml3O9XppEkrC0c236Y/ |
99 | | - 7EobJO5IFVTJh4cv7vFxTJzSsRL8KFD4uzvh+nMCgYEAqY8NBYtIgNJA2B6C6hHF |
100 | | - +bG7v46434ZHFfGTmMQwzE4taVg7YRnzYESAlvK4bAP5ZXR90n7GRGFhrXzoMZ38 |
101 | | - r0bw/q9rV+ReGda7/Bjf7ciCKiq0RODcHtf4IaskjPXCoQRGJtgCPLhWPfld6g9v |
102 | | - /HTvO96xv9e3eG/PKSPog94= |
103 | | - -----END PRIVATE KEY----- |
104 | | - CONF |
105 | | - cat <<CONF > init/hba.sh |
106 | | - cat <<EOF > /var/lib/postgresql/data/pg_hba.conf |
107 | | - local all all trust |
108 | | - host all postgres all trust |
109 | | - hostnossl all pqgossltest all reject |
110 | | - hostnossl all pqgosslcert all reject |
111 | | - hostssl all pqgossltest all trust |
112 | | - hostssl all pqgosslcert all cert |
113 | | - host all all all trust |
114 | | - EOF |
115 | | - CONF |
116 | | - sudo chown 999:999 ./init/* |
117 | | - sudo chmod 600 ./init/* |
118 | | -
|
119 | | - - name: start postgres |
120 | | - run: | |
121 | | - docker run -d \ |
122 | | - --name pg \ |
123 | | - -p 5432:5432 \ |
124 | | - -v $(pwd)/init:/init \ |
125 | | - -e POSTGRES_PASSWORD=unused \ |
126 | | - -e POSTGRES_USER=postgres \ |
127 | | - postgres:${{ matrix.postgres }} \ |
128 | | - -c ssl=on \ |
129 | | - -c ssl_ca_file=/init/root.crt \ |
130 | | - -c ssl_cert_file=/init/server.crt \ |
131 | | - -c ssl_key_file=/init/server.key |
132 | | -
|
133 | | - - name: configure postgres |
134 | | - run: | |
135 | | - n=0 |
136 | | - until [ "$n" -ge 10 ] |
137 | | - do |
138 | | - docker exec pg pg_isready -h localhost && break |
139 | | - n=$((n+1)) |
140 | | - echo waiting for postgres to be ready... |
141 | | - sleep 1 |
142 | | - done |
143 | | - docker exec pg bash /init/hba.sh |
144 | | - n=0 |
145 | | - until [ "$n" -ge 10 ] |
146 | | - do |
147 | | - docker exec pg su postgres -c '/usr/lib/postgresql/${{ matrix.postgres }}/bin/pg_ctl reload' && break |
148 | | - n=$((n+1)) |
149 | | - echo waiting for postgres to reload... |
150 | | - sleep 1 |
151 | | - done |
152 | | -
|
153 | | - - name: setup hosts |
154 | | - run: echo '127.0.0.1 postgres' | sudo tee -a /etc/hosts |
155 | | - |
156 | | - - name: create db/roles |
157 | | - run: | |
158 | | - n=0 |
159 | | - until [ "$n" -ge 10 ] |
160 | | - do |
161 | | - docker exec pg pg_isready -h localhost && break |
162 | | - n=$((n+1)) |
163 | | - echo waiting for postgres to be ready... |
164 | | - sleep 1 |
165 | | - done |
166 | | - docker exec pg createdb -h localhost -U postgres pqgotest |
167 | | - docker exec pg createuser -h localhost -U postgres -DRS pqgossltest |
168 | | - docker exec pg createuser -h localhost -U postgres -DRS pqgosslcert |
169 | | -
|
170 | | - - name: check out code into the Go module directory |
171 | | - uses: actions/checkout@v6 |
172 | | - |
173 | | - - name: set up go |
174 | | - uses: actions/setup-go@v6 |
| 81 | + - uses: 'actions/checkout@v6' |
| 82 | + #- uses: 'douglascamata/setup-docker-macos-action@v1' |
| 83 | + - uses: 'actions/setup-go@v6' |
175 | 84 | with: |
176 | 85 | go-version: ${{ matrix.go }} |
177 | | - id: go |
| 86 | + - name: 'Run tests' |
| 87 | + shell: 'bash' |
| 88 | + run: | |
| 89 | + docker compose up pg${{ matrix.pg }} -d --wait || exit 1 |
| 90 | + echo '127.0.0.1 postgres' | sudo tee -a /etc/hosts |
178 | 91 |
|
179 | | - - name: set key perms |
180 | | - run: sudo chmod 600 testdata/certs/postgresql.key |
| 92 | + echo 'PQTEST_BINARY_PARAMETERS=no go test -race ./...' |
| 93 | + PQTEST_BINARY_PARAMETERS=no go test -race ./... |
181 | 94 |
|
182 | | - - name: run tests |
183 | | - env: |
184 | | - PGUSER: postgres |
185 | | - PGHOST: localhost |
186 | | - PGPORT: 5432 |
187 | | - PQGOSSLTESTS: 1 |
188 | | - PQSSLCERTTEST_PATH: testdata/certs |
189 | | - run: | |
190 | | - PQTEST_BINARY_PARAMETERS=no go test -race ./... |
| 95 | + echo 'PQTEST_BINARY_PARAMETERS=yes go test -race ./...' |
191 | 96 | PQTEST_BINARY_PARAMETERS=yes go test -race ./... |
192 | | -
|
193 | | - - name: build |
194 | | - run: go build -v . |
0 commit comments