Update README.md #28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| branches: | |
| - master | |
| jobs: | |
| test: | |
| name: swift test (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, ubuntu-latest] | |
| swift: ["6.0"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Swift (Linux) | |
| if: runner.os != 'macOS' | |
| uses: swift-actions/setup-swift@v2 | |
| with: | |
| swift-version: ${{ matrix.swift }} | |
| - name: Resolve Swift version | |
| id: swift-version | |
| run: | | |
| set -euo pipefail | |
| if [ "${RUNNER_OS}" = "macOS" ]; then | |
| SWIFT_BIN="$(xcrun -f swift)" | |
| else | |
| SWIFT_BIN="swift" | |
| fi | |
| SWIFT_VERSION="$("${SWIFT_BIN}" --version | head -n 1 | awk '{print $4}')" | |
| echo "version=${SWIFT_VERSION}" >> "${GITHUB_OUTPUT}" | |
| echo "Swift version: ${SWIFT_VERSION}" | |
| - name: Cache SwiftPM | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| .build | |
| ~/.swiftpm | |
| key: swiftpm-${{ runner.os }}-swift-${{ steps.swift-version.outputs.version }}-release-${{ hashFiles('Package.resolved', 'Package.swift') }} | |
| - name: Build and test | |
| env: | |
| CHROMA_PERF_BASELINE_SECONDS: "10" | |
| run: BENCHMARK_DISABLE_JEMALLOC=1 swift test -c release | |
| benchmark: | |
| name: swift package benchmark (macos-latest) | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Resolve Swift version | |
| id: swift-version | |
| run: | | |
| set -euo pipefail | |
| SWIFT_BIN="$(xcrun -f swift)" | |
| SWIFT_VERSION="$("${SWIFT_BIN}" --version | head -n 1 | awk '{print $4}')" | |
| echo "version=${SWIFT_VERSION}" >> "${GITHUB_OUTPUT}" | |
| echo "Swift version: ${SWIFT_VERSION}" | |
| - name: Cache SwiftPM | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| .build | |
| ~/.swiftpm | |
| key: swiftpm-${{ runner.os }}-swift-${{ steps.swift-version.outputs.version }}-release-${{ hashFiles('Package.resolved', 'Package.swift') }} | |
| - name: Install jemalloc | |
| env: | |
| HOMEBREW_NO_AUTO_UPDATE: 1 | |
| run: brew install jemalloc | |
| - name: Run benchmarks | |
| run: swift package benchmark --target ChromaBenchmarks |