| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 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:6.0-jammy
- steps:
- - name: "Checkout repository"
- uses: actions/checkout@v4
- - name: Mark the workspace as safe
- run: git config --global --add safe.directory ${GITHUB_WORKSPACE}
- - name: "Install protoc"
- run: apt update && apt install -y protobuf-compiler
- - name: "Formatting, License Headers, and Generated Code check"
- run: |
- ./dev/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:6.0-jammy
- # 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@v4
- - 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'
- - image: swift:6.0-jammy
- swift-version: '6.0'
- name: Performance Tests on ${{ matrix.image }}
- runs-on: ubuntu-latest
- container:
- image: ${{ matrix.image }}
- steps:
- - uses: actions/checkout@v4
- - name: Install jemalloc for benchmarking
- run: apt update && apt-get install -y libjemalloc-dev
- timeout-minutes: 20
- - name: Run Benchmarks
- working-directory: "./IntegrationTests/Benchmarks"
- run: swift package benchmark baseline check --no-progress --check-absolute-path Thresholds/${{ matrix.swift-version }}/
- timeout-minutes: 20
- examples:
- strategy:
- fail-fast: false
- matrix:
- include:
- - image: swiftlang/swift:nightly-jammy
- - image: swift:6.0-jammy
- name: Build examples using ${{ matrix.image }}
- runs-on: ubuntu-latest
- container:
- image: ${{ matrix.image }}
- steps:
- - uses: actions/checkout@v4
- - name: Build examples
- run: ./dev/build-examples.sh
|