Remove hardcoded stats and Vapor article from cloudkit-guide #452
Workflow file for this run
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: MistKit | |
| on: | |
| push: | |
| branches-ignore: | |
| - '*WIP' | |
| env: | |
| PACKAGE_NAME: MistKit | |
| jobs: | |
| build-ubuntu: | |
| name: Build on Ubuntu | |
| runs-on: ubuntu-latest | |
| container: ${{ matrix.swift.nightly && format('swiftlang/swift:nightly-{0}-{1}', matrix.swift.version, matrix.os) || format('swift:{0}-{1}', matrix.swift.version, matrix.os) }} | |
| if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [noble, jammy] | |
| swift: | |
| - version: "6.1" | |
| - version: "6.2" | |
| - version: "6.3" | |
| nightly: true | |
| type: ["", "wasm", "wasm-embedded"] | |
| exclude: | |
| # Exclude Swift 6.1 from wasm builds | |
| - swift: { version: "6.1" } | |
| type: "wasm" | |
| - swift: { version: "6.1" } | |
| type: "wasm-embedded" | |
| # Exclude Swift 6.3 from wasm builds | |
| - swift: { version: "6.3", nightly: true } | |
| type: "wasm" | |
| - swift: { version: "6.3", nightly: true } | |
| type: "wasm-embedded" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: brightdigit/swift-build@v1.5.0 | |
| id: build | |
| with: | |
| type: ${{ matrix.type }} | |
| wasmtime-version: "40.0.2" | |
| wasm-swift-flags: >- | |
| -Xcc -D_WASI_EMULATED_SIGNAL | |
| -Xcc -D_WASI_EMULATED_MMAN | |
| -Xlinker -lwasi-emulated-signal | |
| -Xlinker -lwasi-emulated-mman | |
| - uses: sersoft-gmbh/swift-coverage-action@v4 | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| id: coverage-files | |
| with: | |
| fail-on-empty-output: true | |
| - name: Upload coverage to Codecov | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| fail_ci_if_error: true | |
| flags: swift-${{ matrix.swift.version }}-${{ matrix.os }}${{ matrix.swift.nightly && 'nightly' || '' }} | |
| verbose: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: ${{ join(fromJSON(steps.coverage-files.outputs.files), ',') }} | |
| build-windows: | |
| name: Build on Windows | |
| runs-on: ${{ matrix.runs-on }} | |
| if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runs-on: [windows-2022, windows-2025] | |
| swift: | |
| - version: swift-6.1-release | |
| build: 6.1-RELEASE | |
| - version: swift-6.2-release | |
| build: 6.2-RELEASE | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: brightdigit/swift-build@v1.5.0 | |
| id: build | |
| with: | |
| windows-swift-version: ${{ matrix.swift.version }} | |
| windows-swift-build: ${{ matrix.swift.build }} | |
| - name: Upload coverage to Codecov | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| fail_ci_if_error: true | |
| flags: swift-${{ matrix.swift.version }},windows | |
| verbose: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| os: windows | |
| swift_project: MistKit | |
| # files: ${{ join(fromJSON(steps.coverage-files.outputs.files), ',') }} | |
| build-android: | |
| name: Build on Android | |
| runs-on: ubuntu-latest | |
| if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| swift: | |
| - version: "6.1" | |
| - version: "6.2" | |
| android-api-level: [33, 34] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Free disk space | |
| if: matrix.build-only == false | |
| uses: jlumbroso/free-disk-space@main | |
| with: | |
| tool-cache: false | |
| android: false | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| docker-images: true | |
| swap-storage: true | |
| - uses: brightdigit/swift-build@v1.5.0 | |
| with: | |
| scheme: ${{ env.PACKAGE_NAME }} | |
| type: android | |
| android-swift-version: ${{ matrix.swift.version }} | |
| android-api-level: ${{ matrix.android-api-level }} | |
| android-run-tests: true | |
| # Note: Code coverage is not supported on Android builds | |
| # The Swift Android SDK does not include LLVM coverage tools (llvm-profdata, llvm-cov) | |
| build-macos: | |
| name: Build on macOS | |
| env: | |
| PACKAGE_NAME: MistKit | |
| runs-on: ${{ matrix.runs-on }} | |
| if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # SPM Build Matrix | |
| - runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.2.app" | |
| - runs-on: macos-15 | |
| xcode: "/Applications/Xcode_16.4.app" | |
| - runs-on: macos-15 | |
| xcode: "/Applications/Xcode_16.3.app" | |
| # macOS Build Matrix | |
| - type: macos | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.2.app" | |
| # iOS Build Matrix | |
| - type: ios | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.2.app" | |
| deviceName: "iPhone 17 Pro" | |
| osVersion: "26.2" | |
| download-platform: true | |
| - type: ios | |
| runs-on: macos-15 | |
| xcode: "/Applications/Xcode_16.3.app" | |
| deviceName: "iPhone 16" | |
| osVersion: "18.4" | |
| download-platform: true | |
| # watchOS Build Matrix | |
| - type: watchos | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.2.app" | |
| deviceName: "Apple Watch Ultra 3 (49mm)" | |
| osVersion: "26.2" | |
| download-platform: true | |
| # tvOS Build Matrix | |
| - type: tvos | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.2.app" | |
| deviceName: "Apple TV" | |
| osVersion: "26.2" | |
| download-platform: true | |
| # visionOS Build Matrix | |
| - type: visionos | |
| runs-on: macos-26 | |
| xcode: "/Applications/Xcode_26.2.app" | |
| deviceName: "Apple Vision Pro" | |
| osVersion: "26.2" | |
| download-platform: true | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build and Test | |
| id: build | |
| uses: brightdigit/swift-build@v1.5.0 | |
| with: | |
| scheme: ${{ env.PACKAGE_NAME }} | |
| type: ${{ matrix.type }} | |
| xcode: ${{ matrix.xcode }} | |
| deviceName: ${{ matrix.deviceName }} | |
| osVersion: ${{ matrix.osVersion }} | |
| download-platform: ${{ matrix.download-platform }} | |
| # Common Coverage Steps | |
| - name: Process Coverage | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| uses: sersoft-gmbh/swift-coverage-action@v4 | |
| - name: Upload Coverage | |
| if: steps.build.outputs.contains-code-coverage == 'true' | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| flags: ${{ matrix.type && format('{0}{1}', matrix.type, matrix.osVersion) || 'spm' }} | |
| lint: | |
| name: Linting | |
| runs-on: ubuntu-latest | |
| if: ${{ !contains(github.event.head_commit.message, 'ci skip') }} | |
| needs: [build-ubuntu, build-macos, build-windows, build-android] | |
| env: | |
| MINT_PATH: .mint/lib | |
| MINT_LINK_PATH: .mint/bin | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Cache mint | |
| id: cache-mint | |
| uses: actions/cache@v4 | |
| env: | |
| cache-name: cache | |
| with: | |
| path: | | |
| .mint | |
| Mint | |
| key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }} | |
| restore-keys: | | |
| ${{ runner.os }}-mint- | |
| - name: Install mint | |
| if: steps.cache-mint.outputs.cache-hit == '' | |
| run: | | |
| git clone https://github.com/yonaskolb/Mint.git | |
| cd Mint | |
| swift run mint install yonaskolb/mint | |
| - name: Lint | |
| run: | | |
| set -e | |
| ./Scripts/lint.sh |