Skip to content

Commit aa5c2df

Browse files
authored
Fix warnings + update CI (#117)
* silence xcode 12b3 warnings * update ci * fix ci * fix db name
1 parent ffa8b35 commit aa5c2df

File tree

4 files changed

+121
-130
lines changed

4 files changed

+121
-130
lines changed

Diff for: .github/CODE_OF_CONDUCT.md

-59
This file was deleted.

Diff for: .github/workflows/test.yml

+116-54
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,132 @@
11
name: test
2-
on:
3-
- pull_request
2+
on:
3+
- pull_request
4+
defaults:
5+
run:
6+
shell: bash
47
jobs:
5-
postgres-nio:
6-
container:
7-
image: vapor/swift:5.2
8+
dependents:
9+
runs-on: ubuntu-latest
810
services:
9-
psql:
10-
image: postgres
11-
ports:
12-
- 5432:5432
13-
env:
11+
psql-a:
12+
image: ${{ matrix.dbimage }}
13+
env:
1414
POSTGRES_USER: vapor_username
1515
POSTGRES_DB: vapor_database
1616
POSTGRES_PASSWORD: vapor_password
17-
runs-on: ubuntu-latest
18-
steps:
19-
- uses: actions/checkout@v1
20-
- run: swift test --enable-test-discovery --sanitize=thread
21-
postgres-kit:
22-
container:
23-
image: vapor/swift:5.2
24-
services:
25-
psql:
26-
image: postgres
27-
ports:
28-
- 5432:5432
29-
env:
17+
psql-b:
18+
image: ${{ matrix.dbimage }}
19+
env:
3020
POSTGRES_USER: vapor_username
3121
POSTGRES_DB: vapor_database
3222
POSTGRES_PASSWORD: vapor_password
33-
runs-on: ubuntu-latest
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
3433
steps:
35-
- run: git clone -b master https://github.com/vapor/postgres-kit.git
36-
working-directory: ./
37-
- run: swift package edit postgres-nio --revision ${{ github.sha }}
38-
working-directory: ./postgres-kit
39-
- run: swift test --enable-test-discovery --sanitize=thread
40-
working-directory: ./postgres-kit
41-
env:
42-
POSTGRES_HOSTNAME: psql
43-
fluent-postgres-driver:
44-
container:
45-
image: vapor/swift:5.2
46-
services:
47-
postgres-a:
48-
image: postgres
34+
- name: Check out package
35+
uses: actions/checkout@v2
36+
with:
37+
path: package
38+
- name: Check out dependent
39+
uses: actions/checkout@v2
40+
with:
41+
repository: vapor/${{ matrix.dependent }}
42+
path: dependent
43+
- name: Use local package
44+
run: swift package edit postgres-nio --path ../package
45+
working-directory: dependent
46+
- name: Run tests with Thread Sanitizer
47+
run: swift test --enable-test-discovery --sanitize=thread
48+
working-directory: dependent
4949
env:
50+
POSTGRES_HOSTNAME: psql-a
51+
POSTGRES_HOSTNAME_A: psql-a
52+
POSTGRES_HOSTNAME_B: psql-b
53+
LOG_LEVEL: notice
54+
linux:
55+
strategy:
56+
fail-fast: false
57+
matrix:
58+
dbimage:
59+
- postgres:12
60+
- 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 }}
78+
runs-on: ubuntu-latest
79+
services:
80+
psql:
81+
image: ${{ matrix.dbimage }}
82+
env:
5083
POSTGRES_USER: vapor_username
5184
POSTGRES_DB: vapor_database
5285
POSTGRES_PASSWORD: vapor_password
53-
postgres-b:
54-
image: postgres
86+
steps:
87+
- name: Check out code
88+
uses: actions/checkout@v2
89+
- name: Run tests with Thread Sanitizer
90+
run: swift test --enable-test-discovery --sanitize=thread
5591
env:
56-
POSTGRES_USER: vapor_username
57-
POSTGRES_DB: vapor_database
58-
POSTGRES_PASSWORD: vapor_password
59-
runs-on: ubuntu-latest
92+
POSTGRES_HOSTNAME: psql
93+
LOG_LEVEL: notice
94+
macOS:
95+
strategy:
96+
fail-fast: false
97+
matrix:
98+
include:
99+
- formula: postgresql@11
100+
datadir: postgresql@11
101+
- formula: postgresql@12
102+
datadir: postgres
103+
runs-on: macos-latest
60104
steps:
61-
- run: git clone -b master https://github.com/vapor/fluent-postgres-driver.git
62-
working-directory: ./
63-
- run: swift package edit postgres-nio --revision ${{ github.sha }}
64-
working-directory: ./fluent-postgres-driver
65-
- run: swift test --enable-test-discovery --sanitize=thread
66-
working-directory: ./fluent-postgres-driver
67-
env:
68-
POSTGRES_HOSTNAME_A: postgres-a
69-
POSTGRES_HOSTNAME_B: postgres-b
70-
105+
- name: Select latest available Xcode
106+
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
119+
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
124+
- name: Checkout code
125+
uses: actions/checkout@v2
126+
- name: Run tests with Thread Sanitizer
127+
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

Diff for: Tests/PostgresNIOTests/PerformanceTests.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ private func prepareTableToMeasureSelectPerformance(
268268
file: StaticString = #file,
269269
line: UInt = #line
270270
) throws {
271-
XCTAssertEqual(rowCount % batchSize, 0, "`rowCount` must be a multiple of `batchSize`", file: file, line: line)
271+
XCTAssertEqual(rowCount % batchSize, 0, "`rowCount` must be a multiple of `batchSize`", file: (file), line: line)
272272
let conn = try PostgresConnection.test(on: eventLoop).wait()
273273
defer { try! conn.close().wait() }
274274

Diff for: Tests/PostgresNIOTests/Utilities.swift

+4-16
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import XCTest
44

55
extension PostgresConnection {
66
static func address() throws -> SocketAddress {
7-
try .makeAddressResolvingHost(hostname, port: 5432)
7+
try .makeAddressResolvingHost( env("POSTGRES_HOSTNAME") ?? "localhost", port: 5432)
88
}
99

1010
static func testUnauthenticated(on eventLoop: EventLoop) -> EventLoopFuture<PostgresConnection> {
@@ -18,9 +18,9 @@ extension PostgresConnection {
1818
static func test(on eventLoop: EventLoop) -> EventLoopFuture<PostgresConnection> {
1919
return testUnauthenticated(on: eventLoop).flatMap { conn in
2020
return conn.authenticate(
21-
username: "vapor_username",
22-
database: "vapor_database",
23-
password: "vapor_password"
21+
username: env("POSTGRES_USERNAME") ?? "vapor_username",
22+
database: env("POSTGRES_DATABASE") ?? "vapor_database",
23+
password: env("POSTGRES_PASSWORD") ?? "vapor_password"
2424
).map {
2525
return conn
2626
}.flatMapError { error in
@@ -32,18 +32,6 @@ extension PostgresConnection {
3232
}
3333
}
3434

35-
var hostname: String {
36-
if let hostname = env("POSTGRES_HOSTNAME") {
37-
return hostname
38-
} else {
39-
#if os(Linux)
40-
return "psql"
41-
#else
42-
return "localhost"
43-
#endif
44-
}
45-
}
46-
4735
extension XCTestCase {
4836

4937
public static var shouldRunLongRunningTests: Bool {

0 commit comments

Comments
 (0)