Skip to content

ref: Cleanup broken references and paths on Cocoapods project #2672

ref: Cleanup broken references and paths on Cocoapods project

ref: Cleanup broken references and paths on Cocoapods project #2672

name: Test CocoaPods
on:
push:
branches:
- main
pull_request:
paths:
- ".github/workflows/integration-test.yml"
- "*.xcodeproj"
- "*.xcworkspace"
- "Samples/iOS-Cocoapods-*/**"
- "scripts/ci-select-xcode.sh"
- "scripts/ci-diagnostics.sh"
- "Sources/**"
- "*.podspec"
- "fastlane/**"
- "Gemfile.lock"
- "Plans/iOS-Cocoapods-Swift6_Base.xctestplan"
# Concurrency configuration:
# - We use workflow-specific concurrency groups to prevent multiple CocoaPods integration tests,
# as these tests involve complex dependency resolution and build processes.
# - For pull requests, we cancel in-progress runs when new commits are pushed since only the
# latest integration test results matter for validating CocoaPods compatibility.
# - For main branch pushes, we never cancel integration tests to ensure our CocoaPods
# integration remains functional for all downstream consumers relying on our library.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
test:
name: CocoaPods Integration
runs-on: macos-15
steps:
- name: Checkout Repository
uses: actions/checkout@v5
- name: Select Xcode
run: ./scripts/ci-select-xcode.sh 16.4
- name: Setup Ruby
uses: ruby/setup-ruby@32110d4e311bd8996b2a82bf2a43b714ccc91777 # v1.221.0
with:
bundler-cache: true
- name: Run Integration Test
run: bundle exec fastlane cocoapods_integration_test
working-directory: Samples/iOS-Cocoapods-Swift6
- name: Upload Result Bundle
uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: integration-test-iOS-Cocoapods-Swift6.xcresult
path: Samples/iOS-Cocoapods-Swift6/fastlane/test_results/results.xcresult
- name: Run CI Diagnostics
if: failure()
run: ./scripts/ci-diagnostics.sh