Skip to content

Add github actions script #58

Add github actions script

Add github actions script #58

Workflow file for this run

name: iOS CI
on: [push, pull_request]
env:
CLOUDINARY_URL: ${{ secrets.CLOUDINARY_URL }}
jobs:
build:
name: Xcode ${{ matrix.xcode_version }} - iOS ${{ matrix.os_version }}
runs-on: macos-latest
strategy:
matrix:
include:
- xcode_version: '16.2'
ios_name: 'iPhone 16'
os_version: '18.4'
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Ruby (for CocoaPods)
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2
- name: Setup Xcode ${{ matrix.xcode_version }}
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ matrix.xcode_version }}
- name: Install CocoaPods
run: sudo gem install cocoapods
- name: Install xcpretty
run: sudo gem install xcpretty
- name: Setup CLOUDINARY_URL
run: |
echo "CLOUDINARY_URL=$(bash tools/get_test_cloud.sh)" >> $GITHUB_ENV
echo "cloud_name: $(echo $CLOUDINARY_URL | cut -d'@' -f2)"
- name: Clean Derived Data
run: rm -rf ~/Library/Developer/Xcode/DerivedData
- name: Debug directory structure
run: |
echo "Contents of root directory:"
ls -la
echo "Contents of Example directory:"
ls -la Example/
echo "Looking for workspace files:"
find . -name "*.xcworkspace" -type d
- name: List available schemes
working-directory: Example
run: |
echo "Current directory contents:"
ls -la
echo "Available schemes and destinations:"
if [ -d "Cloudinary.xcworkspace" ]; then
xcodebuild -workspace Cloudinary.xcworkspace -list
else
echo "Cloudinary.xcworkspace not found, trying alternative paths..."
find . -name "*.xcworkspace" -type d
fi
- name: Install Pods
working-directory: Example
run: pod install
- name: Check all scheme destinations
working-directory: Example
run: |
echo "Getting list of all schemes first..."
SCHEMES=$(xcodebuild -workspace Cloudinary.xcworkspace -list | grep -A 100 "Schemes:" | grep "^ " | sed 's/^ //')
echo "Found schemes: $SCHEMES"
for scheme in $SCHEMES; do
echo "=== Checking destinations for scheme: $scheme ==="
xcodebuild -workspace Cloudinary.xcworkspace -scheme "$scheme" -showdestinations 2>/dev/null || echo "Could not get destinations for $scheme"
echo ""
done
- name: Build and Test (Mac Catalyst)
run: |
xcodebuild test \
-workspace Example/Cloudinary.xcworkspace \
-scheme travis_public_scheme \
-destination "platform=macOS,variant=Mac Catalyst" \
CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO | xcpretty
- name: Test Results
run: |
echo "✅ Tests completed using Xcode 16.2!"
echo "✅ Running iOS code via Mac Catalyst"
echo "⚠️ Note: Using Mac Catalyst due to iOS 18.2 scheme requirements"
echo "💡 To get iOS Simulator testing, update Xcode project deployment targets to iOS 18.4+"
- name: Notify on Failure
if: failure()
run: echo "Notify [email protected] of failure"