Skip to content

Commit 8a784dc

Browse files
committed
Heavily update test matrix.
1 parent a4f9cd5 commit 8a784dc

File tree

2 files changed

+81
-89
lines changed

2 files changed

+81
-89
lines changed

.github/workflows/test.yml

Lines changed: 68 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
11
name: test
2-
on:
3-
- pull_request
4-
defaults:
5-
run:
6-
shell: bash
2+
on: [ 'pull_request' ]
3+
env:
4+
LOG_LEVEL: notice
5+
76
jobs:
7+
8+
# Test that packages depending on us still work
89
dependents:
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
dbimage:
14+
- postgres:13
15+
- postgres:12
16+
- postgres:11
17+
dependent:
18+
- postgres-kit
19+
- fluent-postgres-driver
20+
container: swift:5.3-focal
921
runs-on: ubuntu-latest
1022
services:
1123
psql-a:
1224
image: ${{ matrix.dbimage }}
13-
env:
25+
env:
1426
POSTGRES_USER: vapor_username
1527
POSTGRES_DB: vapor_database
1628
POSTGRES_PASSWORD: vapor_password
1729
psql-b:
1830
image: ${{ matrix.dbimage }}
19-
env:
31+
env:
2032
POSTGRES_USER: vapor_username
2133
POSTGRES_DB: vapor_database
2234
POSTGRES_PASSWORD: vapor_password
23-
container: swift:5.2-bionic
24-
strategy:
25-
fail-fast: false
26-
matrix:
27-
dbimage:
28-
- postgres:12
29-
- postgres:11
30-
dependent:
31-
- postgres-kit
32-
- fluent-postgres-driver
3335
steps:
3436
- name: Check out package
3537
uses: actions/checkout@v2
@@ -50,83 +52,83 @@ jobs:
5052
POSTGRES_HOSTNAME: psql-a
5153
POSTGRES_HOSTNAME_A: psql-a
5254
POSTGRES_HOSTNAME_B: psql-b
53-
LOG_LEVEL: notice
55+
56+
# Run package tests on Linux Swift runners against supported PSQL versions
5457
linux:
5558
strategy:
5659
fail-fast: false
5760
matrix:
5861
dbimage:
62+
- postgres:13
5963
- postgres:12
6064
- postgres:11
61-
runner:
62-
# 5.2 Stable
63-
- swift:5.2-xenial
64-
- swift:5.2-bionic
65-
# 5.2 Unstable
66-
- swiftlang/swift:nightly-5.2-xenial
67-
- swiftlang/swift:nightly-5.2-bionic
68-
# 5.3 Unstable
69-
- swiftlang/swift:nightly-5.3-xenial
70-
- swiftlang/swift:nightly-5.3-bionic
71-
# Master Unsable
72-
- swiftlang/swift:nightly-master-xenial
73-
- swiftlang/swift:nightly-master-bionic
74-
- swiftlang/swift:nightly-master-focal
75-
- swiftlang/swift:nightly-master-centos8
76-
- swiftlang/swift:nightly-master-amazonlinux2
77-
container: ${{ matrix.runner }}
65+
dbauth:
66+
- trust
67+
- md5
68+
- scram-sha-256
69+
swiftver:
70+
- swift:5.2
71+
- swift:5.3
72+
- swiftlang/swift:nightly-5.3
73+
- swiftlang/swift:nightly-master
74+
swiftos:
75+
- xenial
76+
- bionic
77+
- focal
78+
- centos7
79+
- centos8
80+
- amazonlinux2
81+
container: ${{ format('{0}-{1}', matrix.swiftver, matrix.swiftos) }}
7882
runs-on: ubuntu-latest
7983
services:
8084
psql:
8185
image: ${{ matrix.dbimage }}
82-
env:
86+
env:
8387
POSTGRES_USER: vapor_username
8488
POSTGRES_DB: vapor_database
8589
POSTGRES_PASSWORD: vapor_password
90+
POSTGRES_HOST_AUTH_METHOD: ${{ matrix.authtype }}
8691
steps:
92+
- name: SPM is incompatible with CentOS 7
93+
if: ${{ matrix.swiftos == 'centos7' }}
94+
run: |
95+
yum install -y make libcurl-devel
96+
git clone https://github.com/git/git -bv2.28.0 --depth 1 && cd git
97+
make prefix=/usr -j all install NO_OPENSSL=1 NO_EXPAT=1 NO_TCLTK=1 NO_GETTEXT=1 NO_PERL=1
8798
- name: Check out code
8899
uses: actions/checkout@v2
89100
- name: Run tests with Thread Sanitizer
90101
run: swift test --enable-test-discovery --sanitize=thread
91-
env:
92-
POSTGRES_HOSTNAME: psql
93-
LOG_LEVEL: notice
94-
macOS:
102+
env: { POSTGRES_HOSTNAME: 'psql' }
103+
104+
# Run package tests on macOS against supported PSQL versions
105+
macos:
95106
strategy:
96107
fail-fast: false
97108
matrix:
98-
include:
99-
- formula: postgresql@11
100-
datadir: postgresql@11
101-
- formula: postgresql@12
102-
datadir: postgres
109+
dbauth:
110+
- trust
111+
- md5
112+
- scram-sha-256
113+
formula:
114+
- postgresql@11
115+
- postgresql@12
103116
runs-on: macos-latest
104117
steps:
105118
- name: Select latest available Xcode
106119
uses: maxim-lobanov/setup-xcode@1.0
107-
with:
108-
xcode-version: latest
109-
- name: Replace Postgres install and start server
110-
run: |
111-
brew uninstall --force postgresql php && rm -rf /usr/local/{etc,var}/{postgres,pg}*
112-
brew install ${{ matrix.formula }} && brew link --force ${{ matrix.formula }}
113-
initdb --locale=C -E UTF-8 $(brew --prefix)/var/${{ matrix.datadir }}
114-
brew services start ${{ matrix.formula }}
115-
- name: Wait for server to be ready
116-
run: until pg_isready; do sleep 1; done
117-
timeout-minutes: 2
118-
- name: Setup users and databases for Postgres
120+
with: { 'xcode-version': latest }
121+
- name: Install Postgres, setup DB and auth, and wait for server start
119122
run: |
120-
createuser --createdb --login vapor_username
121-
for db in vapor_database_{a,b}; do
122-
createdb -Ovapor_username $db && psql $db <<<"ALTER SCHEMA public OWNER TO vapor_username;"
123-
done
123+
export PATH="/usr/local/opt/${{ matrix.formula }}/bin:$PATH" PGDATA=/tmp/vapor-postgres-test
124+
brew install ${{ matrix.formula }}
125+
pg_ctl initdb -o '--locale=C -E UTF-8'
126+
echo 'host all all samehost ${{ matrix.dbauth }}' >"${PGDATA}/pg_hba.conf"
127+
echo "POSTGRES_USERNAME=$(whoami)" >> $GITHUB_ENV
128+
pg_ctl start --wait
129+
timeout-minutes: 5
124130
- name: Checkout code
125131
uses: actions/checkout@v2
126132
- name: Run tests with Thread Sanitizer
127133
run: swift test --enable-test-discovery --sanitize=thread
128-
env:
129-
POSTGRES_DATABASE: vapor_database_a
130-
POSTGRES_DATABASE_A: vapor_database_a
131-
POSTGRES_DATABASE_B: vapor_database_b
132-
LOG_LEVEL: notice
134+
env: { POSTGRES_DATABASE: 'postgres' }

docker-compose.yml

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,31 @@
1-
version: '2'
1+
version: '3.7'
22

33
services:
4-
psql-12:
5-
image: postgres:12
6-
environment:
7-
POSTGRES_USER: vapor_username
8-
POSTGRES_DB: vapor_database
9-
POSTGRES_PASSWORD: vapor_password
10-
ports:
11-
- 5432:5432
12-
psql-11:
13-
image: postgres:11
4+
psql-13:
5+
image: postgres:13
6+
user: postgres:postgres
147
environment:
8+
POSTGRES_HOST_AUTH_METHOD: "${POSTGRES_HOST_AUTH_METHOD:-md5}"
159
POSTGRES_USER: vapor_username
1610
POSTGRES_DB: vapor_database
1711
POSTGRES_PASSWORD: vapor_password
1812
ports:
1913
- 5432:5432
20-
psql-10:
21-
image: postgres:10
22-
environment:
23-
POSTGRES_USER: vapor_username
24-
POSTGRES_DB: vapor_database
25-
POSTGRES_PASSWORD: vapor_password
26-
ports:
27-
- 5432:5432
28-
psql-9:
29-
image: postgres:9
14+
psql-12:
15+
image: postgres:12
16+
user: postgres:postgres
3017
environment:
18+
POSTGRES_HOST_AUTH_METHOD: "${POSTGRES_HOST_AUTH_METHOD:-md5}"
3119
POSTGRES_USER: vapor_username
3220
POSTGRES_DB: vapor_database
3321
POSTGRES_PASSWORD: vapor_password
3422
ports:
3523
- 5432:5432
36-
psql-ssl:
37-
image: scenecheck/postgres-ssl:latest
24+
psql-11:
25+
image: postgres:11
26+
user: postgres:postgres
3827
environment:
28+
POSTGRES_HOST_AUTH_METHOD: "${POSTGRES_HOST_AUTH_METHOD:-md5}"
3929
POSTGRES_USER: vapor_username
4030
POSTGRES_DB: vapor_database
4131
POSTGRES_PASSWORD: vapor_password

0 commit comments

Comments
 (0)