Skip to content

spm

spm #1422

Workflow file for this run

name: spm
on:
pull_request:
schedule:
# Run every day at 11pm (PST) - cron uses UTC times
- cron: '0 7 * * *'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
swift-build-run:
strategy:
matrix:
os: [macos-15]
xcode: [Xcode_26.2]
platform: [iOS, tvOS, macOS, catalyst]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: ruby/setup-ruby@89f90524b88a01fe6e0b732220432cc6142926af # v1.313.0
- name: Setup Scripts Directory
run: ./setup-scripts.sh
- name: Xcode
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
- name: Initialize xcodebuild
run: xcodebuild -list
- name: iOS Unit Tests
run: scripts/third_party/travis/retry.sh scripts/build.sh AppCheck-Package ${{ matrix.platform }} spm
# SwiftPM emits Swift diagnostics but still exits 0, so warnings scroll past
# unnoticed in the job above. `pod lib lint` escalates the same warnings to
# fatal, which previously made CocoaPods the only gate able to reject them --
# a ~5 minute round-trip, and an accidental dependency rather than a designed
# one. This job makes the cheap gate as strict as the expensive one.
warnings-as-errors:
runs-on: macos-15
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
- name: Build sources and tests with warnings as errors
run: swift build --build-tests -Xswiftc -warnings-as-errors