Bladeren bron

Migrate from travis.org to GitHub actions. (#1214)

Daniel Alm 4 jaren geleden
bovenliggende
commit
a7d65b41bd
4 gewijzigde bestanden met toevoegingen van 85 en 586 verwijderingen
  1. 85 0
      .github/workflows/ci.yaml
  2. 0 252
      .travis-install.sh
  3. 0 204
      .travis-script.sh
  4. 0 130
      .travis.yml

+ 85 - 0
.github/workflows/ci.yaml

@@ -0,0 +1,85 @@
+name: CI
+on:
+  push:
+    branches: [main]
+  pull_request:
+    branches: [main]
+jobs:
+  preflight:
+    name: License Header and Formatting Checks
+    runs-on: ubuntu-latest
+    container:
+      image: swift
+    steps:
+    - uses: actions/checkout@v2
+    - name: "Formatting and License Headers check"
+      run: |
+        SWIFTFORMAT_VERSION=0.46.3
+        git clone --depth 1 --branch "$SWIFTFORMAT_VERSION" "https://github.com/nicklockwood/SwiftFormat" "$HOME/SwiftFormat"
+        swift build --package-path "$HOME/SwiftFormat" --product swiftformat
+        export PATH=$PATH:"$(swift build --package-path "$HOME/SwiftFormat" --show-bin-path)"
+        ./scripts/sanity.sh
+  unit-tests:
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - image: swift:5.4-focal
+            swift-test-flags: "--enable-test-discovery --sanitize=thread"
+          - image: swift:5.3-focal
+            swift-build-flags: "--enable-test-discovery"
+            swift-test-flags: "--enable-test-discovery"
+          - image: swift:5.2-bionic
+            swift-build-flags: "--enable-test-discovery"
+            swift-test-flags: "--enable-test-discovery"
+    name: Build and Test on ${{ matrix.image }}
+    runs-on: ubuntu-latest
+    container:
+      image: ${{ matrix.image }}
+    steps:
+    - uses: actions/checkout@v2
+    - name: 🔧 Build
+      run: swift build ${{ matrix.swift-build-flags }}
+      timeout-minutes: 20
+    - name: 🧪 Test
+      run: swift test ${{ matrix.swift-test-flags }}
+      timeout-minutes: 20
+  performance-tests:
+    strategy:
+      fail-fast: false
+      matrix:
+        include:
+          - image: swift:5.4-focal
+            env:
+              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
+          - image: swift:5.3-focal
+            env:
+              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
+          - image: swift:5.2-bionic
+            env:
+              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
+    name: Performance Tests on ${{ matrix.image }}
+    runs-on: ubuntu-latest
+    container:
+      image: ${{ matrix.image }}
+    steps:
+    - uses: actions/checkout@v2
+    - name: 🧮 Allocation Counting Tests
+      run: ./Performance/allocations/test-allocation-counts.sh
+      env: ${{ matrix.env }}
+      timeout-minutes: 20

+ 0 - 252
.travis-install.sh

@@ -1,252 +0,0 @@
-#!/bin/bash -e
-
-# 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.
-#
-
-#
-# Install dependencies that aren't available as Ubuntu packages (or already present on macOS).
-#
-# Everything goes into $HOME/local.
-#
-# Scripts should add
-# - $HOME/local/bin to PATH
-# - $HOME/local/lib to LD_LIBRARY_PATH
-#
-
-# To speed up the CI we cache the interop test server binaries. We cache the
-# binaries with the gRPC version appended to their name as a means of
-# invalidating the cache when we bump versions.
-
-# Update .travis.yml if this changes.
-BIN_CACHE="$HOME"/bin_cache
-ZIP_CACHE="$HOME"/zip_cache
-
-PROTOBUF_VERSION=3.9.1
-# We need this to build gRPC C++ for the interop test server(s).
-BAZEL_VERSION=0.28.1
-GRPC_VERSION=1.23.0
-
-info() {
-  printf '\033[0;34m%s\033[0m\n' "$1"
-}
-
-success() {
-  printf '\033[0;32m%s\033[0m\n' "$1"
-}
-
-# Install the protoc compiler.
-install_protoc() {
-  echo -en 'travis_fold:start:install.protoc\\r'
-  info "Installing protoc $PROTOBUF_VERSION"
-
-  # Which protoc are we using?
-  if [ "$TRAVIS_OS_NAME" = "osx" ]; then
-    PROTOC_ZIP=protoc-${PROTOBUF_VERSION}-osx-x86_64.zip
-  else
-    PROTOC_ZIP=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip
-  fi
-
-  CACHED_PROTOC_ZIP="$ZIP_CACHE/$PROTOC_ZIP"
-
-  # Is it cached?
-  if [ ! -f "$CACHED_PROTOC_ZIP" ]; then
-    # No: download it.
-    PROTOC_URL=https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_ZIP}
-    info "Downloading protoc from: $PROTOC_URL"
-    if curl -fSsL "$PROTOC_URL" -o "$CACHED_PROTOC_ZIP"; then
-      info "Downloaded protoc from: $PROTOC_URL"
-    else
-      info "Downloading protoc failed, removing artifacts"
-      rm "$CACHED_PROTOC_ZIP"
-      exit 1
-    fi
-  else
-    info "Using cached protoc"
-  fi
-
-  info "Extracting protoc from $CACHED_PROTOC_ZIP"
-  unzip -q "$CACHED_PROTOC_ZIP" -d local
-  success "Installed protoc $PROTOBUF_VERSION"
-  echo -en 'travis_fold:end:install.protoc\\r'
-}
-
-# Install Swift.
-install_swift() {
-  echo -en 'travis_fold:start:install.swift\\r'
-
-  # Use the Swift provided by Xcode on macOS.
-  if [ "$TRAVIS_OS_NAME" != "osx" ]; then
-    info "Installing Swift $SWIFT_VERSION"
-
-    if [ -z "${SWIFT_URL}" ]; then
-      SWIFT_URL=https://swift.org/builds/swift-${SWIFT_VERSION}-release/ubuntu1804/swift-${SWIFT_VERSION}-RELEASE/swift-${SWIFT_VERSION}-RELEASE-ubuntu18.04.tar.gz
-    fi
-
-    info "Downloading Swift from $SWIFT_URL"
-    curl -fSsL "$SWIFT_URL" -o swift.tar.gz
-
-    info "Extracting Swift from swift.tar.gz"
-    tar -xzf swift.tar.gz --strip-components=2 --directory=local
-    success "Installed Swift $SWIFT_VERSION"
-  else
-    info "Skipping Swift installation: using Swift provided by Xcode"
-  fi
-  echo -en 'travis_fold:end:install.swift\\r'
-}
-
-# We need to install bazel to so we can build the gRPC interop test server.
-install_bazel() {
-  echo -en 'travis_fold:start:install.bazel\\r'
-
-  info "Installing Bazel $BAZEL_VERSION"
-
-  # See:
-  # - https://docs.bazel.build/versions/master/install-os-x.html
-  # - https://docs.bazel.build/versions/master/install-ubuntu.html
-  if [ "$TRAVIS_OS_NAME" = "osx" ]; then
-    BAZEL_URL=https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-darwin-x86_64.sh
-  else
-    BAZEL_URL=https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh
-  fi
-
-  info "Downloading Bazel from: $BAZEL_URL"
-  curl -fSsL $BAZEL_URL -o bazel-installer.sh
-
-  chmod +x bazel-installer.sh
-  info "Running ./bazel-installer.sh"
-  ./bazel-installer.sh --prefix="$HOME/local"
-  success "Installed Bazel"
-  echo -en 'travis_fold:end:install.bazel\\r'
-}
-
-# Build the gRPC C++ interop test server and reconnect interop test server.
-build_grpc_cpp_server() {
-  echo -en 'travis_fold:start:install.grpc_cpp_server\\r'
-
-  info "Building gRPC $GRPC_VERSION C++ interop servers"
-  GRPC_INTEROP_SERVER=interop_server-"$GRPC_VERSION"
-  GRPC_RECONNECT_INTEROP_SERVER=reconnect_interop_server-"$GRPC_VERSION"
-
-  # If the servers don't exist: download and build them.
-  if [ ! -f "$BIN_CACHE/$GRPC_INTEROP_SERVER" ] || [ ! -f "$BIN_CACHE/$GRPC_RECONNECT_INTEROP_SERVER" ]; then
-    GRPC_URL=https://github.com/grpc/grpc/archive/v${GRPC_VERSION}.tar.gz
-
-    info "Downloading gRPC from: $GRPC_URL"
-    curl -fSsL $GRPC_URL -o grpc.tar.gz
-
-    # Extract it to grpc
-    mkdir grpc
-    info "Extracting grpc.tar.gz to grpc"
-    tar -xzf grpc.tar.gz --strip-components=1 --directory=grpc
-
-    # Build the interop servers and put them in $BIN_CACHE
-    (
-      cd grpc
-      # Only update progress every second to avoid spamming the logs.
-      "$HOME"/local/bin/bazel build \
-        --show_progress_rate_limit=1 \
-        test/cpp/interop:interop_server \
-        test/cpp/interop:reconnect_interop_server
-
-      # Put them in the $BIN_CACHE
-      info "Copying interop server to $BIN_CACHE/$GRPC_INTEROP_SERVER"
-      cp ./bazel-bin/test/cpp/interop/interop_server "$BIN_CACHE/$GRPC_INTEROP_SERVER"
-      info "Copying interop reconnect server to $BIN_CACHE/$GRPC_RECONNECT_INTEROP_SERVER"
-      cp ./bazel-bin/test/cpp/interop/reconnect_interop_server "$BIN_CACHE/$GRPC_RECONNECT_INTEROP_SERVER"
-    )
-  else
-    info "Skipping download and build of gRPC C++, using cached binaries"
-  fi
-
-  # We should have cached servers now, copy them to $HOME/local/bin
-  cp "$BIN_CACHE/$GRPC_INTEROP_SERVER" "$HOME"/local/bin/interop_server
-  cp "$BIN_CACHE/$GRPC_RECONNECT_INTEROP_SERVER" "$HOME"/local/bin/reconnect_interop_server
-
-  success "Copied gRPC interop servers"
-  echo -en 'travis_fold:end:install.grpc_cpp_server\\r'
-}
-
-function install_swiftformat() {
-  echo -en 'travis_fold:start:install.swiftformat\\r'
-  info "Installing swiftformat"
-
-  # If this version is updated, update the version in scripts/format.sh too.
-  git clone --depth 1 --branch 0.46.3 "https://github.com/nicklockwood/SwiftFormat"
-  cd SwiftFormat
-  version=$(git rev-parse HEAD)
-
-  if [ ! -f "$BIN_CACHE/swiftformat-$version" ]; then
-    info "Building swiftformat"
-    swift build --product swiftformat
-
-    cp "$(swift build --show-bin-path)/swiftformat" "$BIN_CACHE/swiftformat-$version"
-  else
-    info "Skipping build of SwiftFormat, using cached binaries"
-  fi
-
-  # We should have cached swiftformat now, copy it to $HOME/local/bin
-  cp "$BIN_CACHE/swiftformat-$version" "$HOME"/local/bin/swiftformat
-
-  success "Installed swiftformat"
-  echo -en 'travis_fold:end:install.swiftformat\\r'
-}
-
-cd
-mkdir -p local/bin "$BIN_CACHE" "$ZIP_CACHE"
-
-should_install_protoc=false
-should_install_interop_server=false
-should_install_swiftformat=false
-
-while getopts "pif" optname; do
-  case $optname in
-    p)
-      should_install_protoc=true
-      ;;
-    i)
-      should_install_interop_server=true
-      ;;
-    f)
-      should_install_swiftformat=true
-      ;;
-    \?)
-      echo "Uknown option $optname"
-      exit 2
-      ;;
-  esac
-done
-
-# Always install Swift.
-install_swift
-
-if $should_install_protoc; then
-  install_protoc
-fi
-
-if $should_install_interop_server; then
-  install_bazel
-  build_grpc_cpp_server
-fi
-
-if $should_install_swiftformat; then
-  # If we're building SwiftFormat we need to know where Swift lives.
-  export PATH=$HOME/local/bin:$PATH
-  install_swiftformat
-fi
-
-# Verify installation
-info "Contents of $HOME/local:"
-find "$HOME"/local
-success "Install script completed"

+ 0 - 204
.travis-script.sh

@@ -1,204 +0,0 @@
-#!/bin/bash -e
-
-# Copyright 2019, 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.
-
-# See: Makefile
-BUILD_OUTPUT=./.build/debug
-
-info() {
-  printf '\033[0;34m%s\033[0m\n' "$1"
-}
-
-success() {
-  printf '\033[0;32m%s\033[0m\n' "$1"
-}
-
-setup_environment() {
-  echo -en 'travis_fold:start:script.environment\\r'
-  export PATH=$HOME/local/bin:$PATH
-  export LD_LIBRARY_PATH=$HOME/local/lib
-  echo -en 'travis_fold:end:script.environment\\r'
-}
-
-make_all() {
-  echo -en 'travis_fold:start:make.all\\r'
-  info "Running make all"
-  make all
-  success "make all succeeded"
-  echo -en 'travis_fold:end:make.all\\r'
-}
-
-make_test() {
-  local tsan=$1
-  echo -en 'travis_fold:start:make.test\\r'
-
-  if $tsan; then
-    info "Running Swift tests with TSAN"
-    make test-tsan
-  else
-    info "Running Swift tests"
-    make test
-  fi
-
-  success "Swift tests passed"
-  echo -en 'travis_fold:end:make.test\\r'
-}
-
-run_allocation_tests() {
-  echo -en 'travis_fold:start:allocation_tests\\r'
-
-  info "Running allocation counter tests"
-  ./Performance/allocations/test-allocation-counts.sh
-
-  echo -en 'travis_fold:end:allocation_tests\\r'
-}
-
-make_test_plugin() {
-  echo -en 'travis_fold:start:make.test_plugin\\r'
-  info "Validating protoc plugins on the Echo service"
-  make test-plugin
-  success "Validated protoc plugins on the Echo service"
-  echo -en 'travis_fold:end:make.test_plugin\\r'
-}
-
-make_project() {
-  echo -en 'travis_fold:start:make.project\\r'
-  info "Validating .xcodeproj can be generated"
-  if [ "$TRAVIS_OS_NAME" = "osx" ]; then
-    make project
-    info ".xcodeproj was successfully generated"
-  else
-    info "Not running on macOS, skipping .xcodeproj generation"
-  fi
-  echo -en 'travis_fold:end:make.project\\r'
-}
-
-run_interop_tests() {
-  echo -en 'travis_fold:start:test.interop_tests\\r'
-  make interop-test-runner
-  INTEROP_TEST_SERVER_PORT=8080
-
-  # interop_server should be on $PATH
-  info "Starting C++ interop server on port $INTEROP_TEST_SERVER_PORT"
-  "$HOME"/local/bin/interop_server -port "$INTEROP_TEST_SERVER_PORT" &
-  INTEROP_SERVER_PID=$!
-  success "C++ interop server started, pid=$INTEROP_SERVER_PID"
-
-  # Names of the tests we should run:
-  TESTS=(
-    empty_unary
-    large_unary
-    client_streaming
-    server_streaming
-    ping_pong
-    empty_stream
-    custom_metadata
-    status_code_and_message
-    special_status_message
-    unimplemented_method
-    unimplemented_service
-    cancel_after_begin
-    cancel_after_first_response
-    timeout_on_sleeping_server
-  )
-
-  # Run the tests; logs are written to stderr, capture them per-test.
-  for test in "${TESTS[@]}"; do
-    info "Running $test"
-    $BUILD_OUTPUT/GRPCInteroperabilityTests run-test \
-      --host "localhost" \
-      --port "$INTEROP_TEST_SERVER_PORT" \
-      "$test"
-    success "PASSED $test"
-  done
-
-  success "Interop tests PASSED"
-  info "Stopping C++ interop server"
-  kill "$INTEROP_SERVER_PID"
-  success "Stopped C++ interop server"
-  echo -en 'travis_fold:end:test.interop_tests\\r'
-}
-
-run_interop_reconnect_test() {
-  echo -en 'travis_fold:start:test.interop_reconnect\\r'
-  make interop-backoff-test-runner
-  INTEROP_TEST_SERVER_CONTROL_PORT=8081
-  INTEROP_TEST_SERVER_RETRY_PORT=8082
-
-  # reconnect_interop_server should be on $PATH
-  info "Starting C++ reconnect interop server:"
-  info " - control port: ${INTEROP_TEST_SERVER_CONTROL_PORT}"
-  info " - retry port: ${INTEROP_TEST_SERVER_RETRY_PORT}"
-  "$HOME"/local/bin/reconnect_interop_server \
-    -control_port "$INTEROP_TEST_SERVER_CONTROL_PORT" \
-    -retry_port "$INTEROP_TEST_SERVER_RETRY_PORT" &
-  INTEROP_RECONNECT_SERVER_PID=$!
-  success "C++ reconnect interop server started, pid=$INTEROP_RECONNECT_SERVER_PID"
-
-  info "Running connection backoff interop test"
-  # Run the test; logs are written to stderr, redirect them to a file.
-  ${BUILD_OUTPUT}/GRPCConnectionBackoffInteropTest \
-    --control-port ${INTEROP_TEST_SERVER_CONTROL_PORT} \
-    --retry-port ${INTEROP_TEST_SERVER_RETRY_PORT}
-  success "connection backoff interop test PASSED"
-
-  info "Stopping C++ reconnect interop server"
-  kill "$INTEROP_RECONNECT_SERVER_PID"
-  success "Stopped C++ reconnect interop server"
-  echo -en 'travis_fold:end:test.interop_reconnect\\r'
-}
-
-just_sanity=false
-allocation_tests=false
-just_interop_tests=false
-tsan=false
-
-while getopts "sita" optname; do
-  case $optname in
-    s)
-      just_sanity=true
-      ;;
-    i)
-      just_interop_tests=true
-      ;;
-    t)
-      tsan=true
-      ;;
-    a)
-      allocation_tests=true
-      ;;
-    \?)
-      echo "Uknown option $optname"
-      exit 2
-      ;;
-  esac
-done
-
-setup_environment
-
-if $just_sanity; then
-  ./scripts/sanity.sh
-elif $just_interop_tests; then
-  run_interop_tests
-  run_interop_reconnect_test
-else
-  make_all
-  make_test $tsan
-  if $allocation_tests; then
-    run_allocation_tests
-  fi
-  make_test_plugin
-  make_project
-fi

+ 0 - 130
.travis.yml

@@ -1,130 +0,0 @@
-#
-# 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