# # 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.3.1 # Tests for each PR. - &tests stage: "Test" name: "Unit Tests: Ubuntu 18.04 (Swift 5.3)" os: linux dist: bionic install: ./.travis-install.sh -p # install protoc script: ./.travis-script.sh -t # with tsan env: SWIFT_VERSION=5.3.1 - <<: *tests name: "Unit Tests: Ubuntu 18.04 (Swift 5.2)" script: ./.travis-script.sh env: SWIFT_VERSION=5.2.5 - <<: *tests name: "Unit Tests: Ubuntu 18.04 (Swift 5.1)" script: ./.travis-script.sh env: SWIFT_VERSION=5.1.5 - <<: *tests name: "Unit Tests: Xcode 12.2" os: osx osx_image: xcode12.2 - <<: *tests name: "Unit Tests: Xcode 11.6" os: osx osx_image: xcode11.6 # Interop Tests. - &interop_tests stage: "Interoperability Tests" # Linux name: "Interoperability Tests: Ubuntu 18.04 (Swift 5.3)" 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.3.1 - <<: *interop_tests name: "Interoperability Tests: Ubuntu 18.04 (Swift 5.2)" env: SWIFT_VERSION=5.2.5 - <<: *interop_tests name: "Interoperability Tests: Ubuntu 18.04 (Swift 5.1)" env: SWIFT_VERSION=5.1.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