| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- 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@v3
- - name: "Formatting and License Headers check"
- run: |
- ./scripts/sanity.sh
- unit-tests:
- strategy:
- fail-fast: false
- matrix:
- include:
- - image: swiftlang/swift:nightly-jammy
- # No TSAN because of: https://github.com/apple/swift/issues/59068
- # swift-test-flags: "--sanitize=thread"
- - image: swift:5.9-jammy
- # No TSAN because of: https://github.com/apple/swift/issues/59068
- # swift-test-flags: "--sanitize=thread"
- - image: swift:5.8-focal
- # No TSAN because of: https://github.com/apple/swift/issues/59068
- # swift-test-flags: "--sanitize=thread"
- - image: swift:5.7-focal
- # No TSAN because of: https://github.com/apple/swift/issues/59068
- # swift-test-flags: "--sanitize=thread"
- name: Build and Test on ${{ matrix.image }}
- runs-on: ubuntu-latest
- container:
- image: ${{ matrix.image }}
- steps:
- - uses: actions/checkout@v3
- - 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: swiftlang/swift:nightly-jammy
- swift-version: main
- env:
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_10_requests: 323000
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_1_request: 161000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_10_small_requests: 110000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_1_small_request: 65000
- MAX_ALLOCS_ALLOWED_embedded_server_unary_1k_rpcs_1_small_request: 61000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong: 163000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong_interceptors_client: 170000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong_interceptors_server: 170000
- - image: swift:5.9-jammy
- swift-version: 5.9
- env:
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_10_requests: 323000
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_1_request: 161000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_10_small_requests: 110000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_1_small_request: 65000
- MAX_ALLOCS_ALLOWED_embedded_server_unary_1k_rpcs_1_small_request: 61000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong: 163000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong_interceptors_client: 170000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong_interceptors_server: 170000
- - image: swift:5.8-focal
- swift-version: 5.8
- env:
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_10_requests: 323000
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_1_request: 161000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_10_small_requests: 110000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_1_small_request: 65000
- MAX_ALLOCS_ALLOWED_embedded_server_unary_1k_rpcs_1_small_request: 61000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong: 163000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong_interceptors_client: 170000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong_interceptors_server: 170000
- - image: swift:5.7-focal
- swift-version: 5.7
- env:
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_10_requests: 323000
- MAX_ALLOCS_ALLOWED_bidi_1k_rpcs_1_request: 161000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_10_small_requests: 110000
- MAX_ALLOCS_ALLOWED_embedded_server_bidi_1k_rpcs_1_small_request: 65000
- MAX_ALLOCS_ALLOWED_embedded_server_unary_1k_rpcs_1_small_request: 61000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong: 163000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong_interceptors_client: 170000
- MAX_ALLOCS_ALLOWED_unary_1k_ping_pong_interceptors_server: 170000
- name: Performance Tests on ${{ matrix.image }}
- runs-on: ubuntu-latest
- container:
- image: ${{ matrix.image }}
- steps:
- - uses: actions/checkout@v3
- - name: 🧮 Allocation Counting Tests
- run: ./Performance/allocations/test-allocation-counts.sh
- env: ${{ matrix.env }}
- timeout-minutes: 20
- - name: Install jemalloc for benchmarking
- run: apt update && apt-get install -y libjemalloc-dev
- timeout-minutes: 20
- - name: Run Benchmarks
- working-directory: ./Performance/Benchmarks
- run: swift package benchmark baseline check --check-absolute-path Thresholds/${{ matrix.swift-version }}/
- timeout-minutes: 20
- integration-tests:
- strategy:
- fail-fast: false
- matrix:
- include:
- - image: swiftlang/swift:nightly-jammy
- - image: swift:5.9-jammy
- - image: swift:5.8-focal
- - image: swift:5.7-focal
- name: Integration Tests on ${{ matrix.image }}
- runs-on: ubuntu-latest
- container:
- image: ${{ matrix.image }}
- steps:
- - uses: actions/checkout@v3
- - name: Build without NIOSSL
- run: swift build
- env:
- GRPC_NO_NIO_SSL: 1
- timeout-minutes: 20
- - name: Test without NIOSSL
- run: swift test
- env:
- GRPC_NO_NIO_SSL: 1
- timeout-minutes: 20
|