Skip to content

Fix crashes

Fix crashes #82

Workflow file for this run

name: CI
on:
pull_request:
branches: [ master ]
jobs:
run-tests:
runs-on: macos-latest
strategy:
matrix:
os: ['tvOS', 'iOS']
steps:
- uses: actions/checkout@v2
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0.1'
- uses: actions/cache@v4
id: carthage-cache
with:
path: Carthage
key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }}-v2
- name: Clear Carthage cache if needed
if: steps.carthage-cache.outputs.cache-hit != 'true'
run: |
echo "🧹 Clearing Carthage caches to avoid build conflicts..."
rm -rf ~/Library/Caches/org.carthage.CarthageKit
- name: Build with Carthage
if: steps.carthage-cache.outputs.cache-hit != 'true'
continue-on-error: true
id: carthage-build
env:
GITHUB_TOKEN: ${{ secrets.PUSHER_CI_GITHUB_PRIVATE_TOKEN }}
GITHUB_ACCESS_TOKEN: ${{ secrets.PUSHER_CI_GITHUB_PRIVATE_TOKEN }}
run: |
sh ./Consumption-Tests/Shared/carthage.sh bootstrap --cache-builds --use-xcframeworks
- name: Fallback to SPM-based build
if: steps.carthage-build.outcome == 'failure' && steps.carthage-cache.outputs.cache-hit != 'true'
run: |
echo "⚠️ Carthage build failed, falling back to Swift Package Manager"
echo "🔄 Resolving dependencies via Swift Package Manager..."
# Swift Package Manager will resolve dependencies when building the project
# We don't need to do anything here as SPM integration is built into the Xcode project
echo "✅ Swift Package Manager fallback ready"
- uses: futureware-tech/simulator-action@v1
id: simulator
with:
os: ${{ matrix.os }}
- name: "Run ${{ matrix.os }} Tests"
run: |
set -o pipefail && env NSUnbufferedIO=YES xcodebuild \
-project PusherSwift.xcodeproj \
-scheme PusherSwift \
build \
COMPILER_INDEX_STORE_ENABLE=NO \
test \
-destination "id=${{ steps.simulator.outputs.udid }}" \
| xcpretty --color