[Infra] Common cocoapods pod lib lint job #3667
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: messaging | |
on: | |
workflow_dispatch: | |
pull_request: | |
paths: | |
# Messaging sources | |
- 'FirebaseMessaging/**' | |
# Interop headers | |
- 'Interop/Analytics/Public/*.h' | |
# Podspec | |
- 'FirebaseMessaging.podspec' | |
# This file | |
- '.github/workflows/messaging.yml' | |
# Re-usable workflows being used by this file. | |
- '.github/workflows/common.yml' | |
- '.github/workflows/common_cocoapods.yml' | |
# Rebuild on Ruby infrastructure changes | |
- 'Gemfile*' | |
schedule: | |
# Run every day at 10pm (PST) - cron uses UTC times | |
- cron: '0 6 * * *' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
spm: | |
uses: ./.github/workflows/common.yml | |
with: | |
target: MessagingUnit | |
buildonly_platforms: tvOS, macOS, watchOS, catalyst, visionOS | |
catalyst: | |
uses: ./.github/workflows/common_catalyst.yml | |
with: | |
product: FirebaseMessaging | |
target: FirebaseMessaging-Unit-unit | |
pod_lib_lint: | |
strategy: | |
matrix: | |
product: [FirebaseMessagingInterop, FirebaseMessaging] | |
uses: ./.github/workflows/common_cocoapods.yml | |
with: | |
product: ${{ matrix.product }} | |
# buildonly_platforms: macOS # skip tests on macos and watchos. only test unit spec | |
# TODO(#12205) Update the build.sh script for this job from "test" instead of "build" | |
messaging-integration-tests: | |
# Don't run on private repo unless it is a PR. | |
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: integration | |
- name: Configure test keychain | |
run: scripts/configure_test_keychain.sh | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Xcode | |
run: sudo xcode-select -s /Applications/Xcode_16.3.app/Contents/Developer | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: Install xcpretty | |
run: gem install xcpretty | |
- name: Install Secret GoogleService-Info.plist | |
run: | | |
mkdir FirebaseMessaging/Tests/IntegrationTests/Resources | |
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ | |
FirebaseMessaging/Tests/IntegrationTests/Resources/GoogleService-Info.plist "$plist_secret" | |
- name: BuildAndTest | |
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/build.sh Messaging all) | |
quickstart: | |
# Don't run on private repo unless it is a PR. | |
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
strategy: | |
matrix: | |
include: | |
- os: macos-15 | |
xcode: Xcode_16.2 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Setup quickstart | |
run: scripts/setup_quickstart.sh messaging | |
- name: Install Secret GoogleService-Info.plist | |
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \ | |
quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret" | |
- name: Xcode | |
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer | |
- name: Test objc quickstart | |
run: ([ -z $plist_secret ] || | |
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false) | |
- name: Test swift quickstart | |
run: ([ -z $plist_secret ] || | |
scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift) | |
quickstart-ftl-cron-only: | |
# Don't run on private repo. | |
if: github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Xcode | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- name: Setup quickstart | |
run: scripts/setup_quickstart.sh messaging | |
- name: Install Secret GoogleService-Info.plist | |
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \ | |
quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret" | |
- name: Build objc quickstart | |
run: ([ -z $plist_secret ] || | |
scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging) | |
- name: Build swift quickstart | |
run: ([ -z $plist_secret ] || | |
scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh Messaging swift) | |
- id: ftl_test | |
uses: FirebaseExtended/github-actions/firebase-test-lab@v1.4 | |
with: | |
credentials_json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS }} | |
testapp_dir: quickstart-ios/build-for-testing | |
test_type: "xctest" | |
messaging-cron-only: | |
# Don't run on private repo. | |
if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk' | |
strategy: | |
matrix: | |
target: [ios, tvos, macos --skip-tests, watchos --skip-tests] | |
os: [macos-14, macos-15] | |
include: | |
- os: macos-15 | |
xcode: Xcode_16.2 | |
tests: --test-specs=unit | |
- os: macos-14 | |
xcode: Xcode_16.2 | |
tests: --skip-tests | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: Xcode | |
run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer | |
- name: PodLibLint Messaging Cron | |
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec ${{ matrix.tests }} --platforms=${{ matrix.target }} --use-static-frameworks | |
messaging-sample-build-test: | |
# Don't run on private repo unless it is a PR. | |
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: sample${{ matrix.os }} | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: Install Secret GoogleService-Info.plist | |
run: | | |
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ | |
FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" | |
- name: Prereqs | |
run: scripts/install_prereqs.sh MessagingSample iOS | |
- name: Xcode | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- name: Build | |
run: ([ -z $plist_secret ] || scripts/build.sh MessagingSample iOS) | |
messaging-swiftui-sample-build-test: | |
# Don't run on private repo unless it is a PR. | |
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: sample${{ matrix.os }} | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: Install Secret GoogleService-Info.plist | |
run: | | |
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ | |
FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" | |
- name: Prereqs | |
run: scripts/install_prereqs.sh SwiftUISample iOS | |
- name: Xcode | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- name: Build | |
run: ([ -z $plist_secret ] || scripts/build.sh SwiftUISample iOS) | |
messaging-watchos-standalone-sample-build-test: | |
# Don't run on private repo unless it is a PR. | |
if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' | |
env: | |
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
runs-on: macos-15 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126 | |
with: | |
cache_key: watch-sample${{ matrix.os }} | |
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1 | |
- name: Setup Bundler | |
run: scripts/setup_bundler.sh | |
- name: Install Secret GoogleService-Info.plist | |
run: | | |
scripts/decrypt_gha_secret.sh scripts/gha-encrypted/messaging-sample-plist.gpg \ | |
FirebaseMessaging/Apps/Shared/GoogleService-Info.plist "$plist_secret" | |
- name: Prereqs | |
run: scripts/install_prereqs.sh MessagingSampleStandaloneWatchApp watchOS | |
- name: Xcode | |
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer | |
- name: Build | |
run: ([ -z $plist_secret ] || scripts/build.sh MessagingSampleStandaloneWatchApp watchOS) | |