1
1
name : Test Matrix
2
- on : ['pull_request']
3
- defaults :
4
- run :
5
- shell : bash
2
+ on :
3
+ - pull_request
6
4
jobs :
7
- PR-tests- linux :
5
+ linux :
8
6
strategy :
9
7
fail-fast : false
10
8
matrix :
11
- dbimage : ['postgres:11', 'postgres:12']
12
- runner : [
13
- ' swift:5.2-xenial' , 'swift:5.2-bionic',
14
- ' swiftlang/swift:nightly-5.2-xenial' , 'swiftlang/swift:nightly-5.2-bionic',
15
- ' swiftlang/swift:nightly-5.3-xenial' , 'swiftlang/swift:nightly-5.3-bionic',
16
- ' swiftlang/swift:nightly-master-xenial' , 'swiftlang/swift:nightly-master-bionic',
17
- ' swiftlang/swift:nightly-master-focal' ,
18
- ' swiftlang/swift:nightly-master-centos8' ,
19
- ' swiftlang/swift:nightly-master-amazonlinux2'
20
- ]
21
- include :
22
- - installcmd : ' apt-get -q update && apt-get -q install -y postgresql-client'
23
- - { 'runner': 'swiftlang/swift:nightly-master-centos8', 'installcmd': 'dnf install -y zlib-devel postgresql' }
24
- - { 'runner': 'swiftlang/swift:nightly-master-amazonlinux2', 'installcmd': 'yum install -y zlib-devel postgresql' }
9
+ dbimage :
10
+ - postgres:11
11
+ - postgres:12
12
+ runner :
13
+ # 5.2 Stable
14
+ - swift:5.2-xenial
15
+ - swift:5.2-bionic
16
+ # 5.2 Unstable
17
+ - swiftlang/swift:nightly-5.2-xenial
18
+ - swiftlang/swift:nightly-5.2-bionic
19
+ # 5.3 Unstable
20
+ - swiftlang/swift:nightly-5.3-xenial
21
+ - swiftlang/swift:nightly-5.3-bionic
22
+ # Master Unsable
23
+ - swiftlang/swift:nightly-master-xenial
24
+ - swiftlang/swift:nightly-master-bionic
25
+ - swiftlang/swift:nightly-master-focal
26
+ - swiftlang/swift:nightly-master-centos8
27
+ - swiftlang/swift:nightly-master-amazonlinux2
25
28
container : ${{ matrix.runner }}
26
29
runs-on : ubuntu-latest
27
30
services :
28
- postgres :
31
+ postgres-a :
29
32
image : ${{ matrix.dbimage }}
30
- env : { POSTGRES_USER: vapor_username, POSTGRES_PASSWORD: vapor_password, POSTGRES_DB: vapor_database }
31
- env : { 'PGPASSWORD': 'vapor_password' }
33
+ env :
34
+ POSTGRES_USER : vapor_username
35
+ POSTGRES_PASSWORD : vapor_password
36
+ POSTGRES_DB : vapor_database
37
+ postgres-b :
38
+ image : ${{ matrix.dbimage }}
39
+ env :
40
+ POSTGRES_USER : vapor_username
41
+ POSTGRES_PASSWORD : vapor_password
42
+ POSTGRES_DB : vapor_database
32
43
steps :
33
- - name : Install dependencies
34
- run : ${{ matrix.installcmd }}
35
- - name : Wait for Postgres server to be ready
36
- run : until echo | psql -hpostgres -Uvapor_username vapor_database; do sleep 1; done
37
- timeout-minutes : 5
38
- - name : Set up Postgres databases and privileges
39
- run : |
40
- for db in vapor_migration_extra; do createdb -hpostgres -Uvapor_username -Ovapor_username $db; done
41
44
- name : Check out code
42
45
uses : actions/checkout@v2
43
46
- name : Run tests with Thread Sanitizer
44
47
run : swift test --enable-test-discovery --sanitize=thread
45
- env : { 'POSTGRES_HOSTNAME': 'postgres' }
46
- PR-tests-macos :
48
+ env :
49
+ POSTGRES_HOSTNAME_A : postgres-a
50
+ POSTGRES_HOSTNAME_B : postgres-b
51
+ macos :
47
52
strategy :
48
53
fail-fast : false
49
54
matrix :
50
55
include :
51
- - {'formula': 'postgresql@11', 'datadir': 'postgresql@11'}
52
- - {'formula': 'postgresql@12', 'datadir': 'postgres'}
56
+ - formula : postgresql@11
57
+ datadir : postgresql@11
58
+ - formula : postgresql@12
59
+ datadir : postgres
53
60
runs-on : macos-latest
54
- env : { 'PGPASSWORD': 'vapor_password' }
61
+ env :
62
+ PGPASSWORD : vapor_password
55
63
steps :
56
64
- name : Select latest available Xcode
57
65
uses :
maxim-lobanov/[email protected]
58
- with : { 'xcode-version': 'latest' }
66
+ with :
67
+ xcode-version : latest
59
68
- name : Blow away the default Postgres installation
60
69
run : brew uninstall --force postgresql php && rm -rf /usr/local/{etc,var}/{postgres,pg}*
61
70
- name : Install Postgres server from Homebrew
@@ -70,10 +79,13 @@ jobs:
70
79
- name : Set up Postgres databases and privileges
71
80
run : |
72
81
createuser --createdb --login vapor_username
73
- for db in vapor_{database,migration_extra }; do
82
+ for db in vapor_{database_a,database_b }; do
74
83
createdb -Ovapor_username $db && psql $db <<<"ALTER SCHEMA public OWNER TO vapor_username;"
75
84
done
76
85
- name : Check out code
77
86
uses : actions/checkout@v2
78
87
- name : Run tests with Thread Sanitizer
79
88
run : swift test --enable-test-discovery --sanitize=thread
89
+ env :
90
+ POSTGRES_DATABASE_A : vapor_database_a
91
+ POSTGRES_DATABASE_B : vapor_database_b
0 commit comments