name: Build iOS on: workflow_dispatch: push: branches: - master paths: - '.github/workflows/build-ios.yml' - 'ios/**' - '*.podspec' - 'examples/basic/ios/**' pull_request: paths: - '.github/workflows/build-ios.yml' - 'ios/**' - '*.podspec' - 'examples/basic/ios/**' jobs: build: name: Build iOS Example App runs-on: macos-14 # This allow us to use Xcode 15.0.1 which is a lot faster - TODO change to "macos-latest" once it's out of beta defaults: run: working-directory: examples/basic/ios steps: - uses: actions/checkout@v4 - name: Install node_modules uses: ./.github/actions/setup-node with: working-directory: examples/basic - name: Restore buildcache uses: mikehardy/buildcache-action@v2 continue-on-error: true - name: Setup Ruby (bundle) uses: ruby/setup-ruby@v1 with: ruby-version: 2.6.10 bundler-cache: true - name: Restore Pods cache uses: actions/cache@v3 with: path: | examples/basic/ios/Pods ~/Library/Caches/CocoaPods ~/.cocoapods key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-pods- - name: Install Pods run: pod install - name: Install xcpretty run: gem install xcpretty - name: Build App run: "set -o pipefail && xcodebuild \ -derivedDataPath build -UseModernBuildSystem=YES \ -workspace videoplayer.xcworkspace \ -scheme videoplayer \ -sdk iphonesimulator \ -configuration Debug \ -destination 'platform=iOS Simulator,name=iPhone 14' \ build \ CODE_SIGNING_ALLOWED=NO | xcpretty" build-with-ads: name: Build iOS Example App With Ads runs-on: macos-14 # This allow us to use Xcode 15.0.1 which is a lot faster - TODO change to "macos-latest" once it's out of beta defaults: run: working-directory: examples/basic/ios steps: - uses: actions/checkout@v4 - name: Install node_modules uses: ./.github/actions/setup-node with: working-directory: examples/basic - name: Restore buildcache uses: mikehardy/buildcache-action@v2 continue-on-error: true - name: Setup Ruby (bundle) uses: ruby/setup-ruby@v1 with: ruby-version: 2.6.10 bundler-cache: true - name: Restore Pods cache uses: actions/cache@v3 with: path: | examples/basic/ios/Pods ~/Library/Caches/CocoaPods ~/.cocoapods key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-pods- - name: Install Pods run: export RNV_SAMPLE_ENABLE_ADS=true && pod install - name: Install xcpretty run: gem install xcpretty - name: Build App run: "set -o pipefail && export RNV_SAMPLE_ENABLE_ADS=true && xcodebuild \ -derivedDataPath build -UseModernBuildSystem=YES \ -workspace videoplayer.xcworkspace \ -scheme videoplayer \ -sdk iphonesimulator \ -configuration Debug \ -destination 'platform=iOS Simulator,name=iPhone 14' \ build \ CODE_SIGNING_ALLOWED=NO | xcpretty" build-with-caching: name: Build iOS Example App With Caching runs-on: macos-14 # This allow us to use Xcode 15.0.1 which is a lot faster - TODO change to "macos-latest" once it's out of beta defaults: run: working-directory: examples/basic/ios steps: - uses: actions/checkout@v4 - name: Install node_modules uses: ./.github/actions/setup-node with: working-directory: examples/basic - name: Restore buildcache uses: mikehardy/buildcache-action@v2 continue-on-error: true - name: Setup Ruby (bundle) uses: ruby/setup-ruby@v1 with: ruby-version: 2.6.10 bundler-cache: true - name: Restore Pods cache uses: actions/cache@v3 with: path: | examples/basic/ios/Pods ~/Library/Caches/CocoaPods ~/.cocoapods key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-pods- - name: Install Pods run: export RNV_SAMPLE_VIDEO_CACHING=true && pod install - name: Install xcpretty run: gem install xcpretty - name: Build App run: "set -o pipefail && export RNV_SAMPLE_VIDEO_CACHING=true && xcodebuild \ -derivedDataPath build -UseModernBuildSystem=YES \ -workspace videoplayer.xcworkspace \ -scheme videoplayer \ -sdk iphonesimulator \ -configuration Debug \ -destination 'platform=iOS Simulator,name=iPhone 14' \ build \ CODE_SIGNING_ALLOWED=NO | xcpretty"