forked from grpc/grpc-swift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
130 lines (126 loc) · 4.45 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#
# Copyright 2017, gRPC Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Travis CI build file for gRPC Swift.
language: minimal
jobs:
include:
# Sanity checks for PRs.
- &sanity
stage: "Preflight Checks"
name: "Sanity (license headers and formatting)"
os: linux
dist: bionic
install: ./.travis-install.sh -f # install swiftformat
script: ./.travis-script.sh -s # just sanity
env: SWIFT_VERSION=5.4
# Tests for each PR.
- &tests
stage: "Test"
name: "Unit Tests: Ubuntu 18.04 (Swift 5.4)"
os: linux
dist: bionic
install: ./.travis-install.sh -p # install protoc
script: ./.travis-script.sh -t -a # tests with tsan, run allocation tests
env:
- SWIFT_VERSION=5.4
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_10_requests=515000
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_1_request=227000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_10_small_requests=112000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_1_small_request=67000
- MAX_ALLOCS_ALLOWED_embedded_server_unary_1k_rpcs_1_small_request=63000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong=216000
- <<: *tests
name: "Unit Tests: Ubuntu 18.04 (Swift 5.3)"
script: ./.travis-script.sh -t -a # test with tsan, run allocation tests
env:
- SWIFT_VERSION=5.3.3
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_10_requests=515000
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_1_request=227000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_10_small_requests=112000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_1_small_request=67000
- MAX_ALLOCS_ALLOWED_embedded_server_unary_1k_rpcs_1_small_request=63000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong=216000
- <<: *tests
name: "Unit Tests: Ubuntu 18.04 (Swift 5.2)"
script: ./.travis-script.sh -a # run allocation tests
env:
- SWIFT_VERSION=5.2.5
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_10_requests=526000
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_1_request=229000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_10_small_requests=112000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_1_small_request=67000
- MAX_ALLOCS_ALLOWED_embedded_server_unary_1k_rpcs_1_small_request=63000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong=217000
- <<: *tests
name: "Unit Tests: Xcode 12.2"
os: osx
osx_image: xcode12.2
script: ./.travis-script.sh
- <<: *tests
name: "Unit Tests: Xcode 11.6"
os: osx
osx_image: xcode11.6
script: ./.travis-script.sh
# Interop Tests.
- &interop_tests
stage: "Interoperability Tests"
# Linux
name: "Interoperability Tests: Ubuntu 18.04 (Swift 5.4)"
os: linux
dist: bionic
install: ./.travis-install.sh -p -i # install protoc and interop server
script: ./.travis-script.sh -i # interop tests
env: SWIFT_VERSION=5.4
- <<: *interop_tests
name: "Interoperability Tests: Ubuntu 18.04 (Swift 5.3)"
env: SWIFT_VERSION=5.3.3
- <<: *interop_tests
name: "Interoperability Tests: Ubuntu 18.04 (Swift 5.2)"
env: SWIFT_VERSION=5.2.5
- <<: *interop_tests
name: "Interoperability Tests: Xcode 12.2"
os: osx
osx_image: xcode12.2
- <<: *interop_tests
name: "Interoperability Tests: Xcode 11.6"
os: osx
osx_image: xcode11.6
allow_failures:
# Swift Development builds are allowed to fail since they're pre-release.
- <<: *development
stages:
- name: "Preflight Checks"
# Always run this stage.
- name: "Test"
# Only run when pushing (or merging) to main
- name: "Interoperability Tests"
if: type = push AND branch = main
cache:
apt: true
directories:
- $HOME/bin_cache
- $HOME/zip_cache
addons:
apt:
packages:
- build-essential
- curl
- unzip
- zip
- pkg-config
- g++
- zlib1g-dev
- python3