Files
firebase-ios-sdk/.github/workflows/database.yml
T
Gran d36e6e4600 Add Database framework testing. (#5799)
* Add Database framework testing.
2020-06-23 10:40:26 -07:00

148 lines
6.1 KiB
YAML

name: database
on:
pull_request:
paths:
- 'FirebaseDatabase**'
- 'Firebase/Database/**'
- 'Example/Database/**'
- 'Interop/Auth/Public/*.h'
- '.github/workflows/database.yml'
- 'Gemfile'
schedule:
# Run every day at 11pm (PST) - cron uses UTC times
- cron: '0 7 * * *'
jobs:
unit:
# Don't run on private repo unless it is a PR.
if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
runs-on: macos-latest
strategy:
matrix:
target: [iOS, tvOS, macOS]
steps:
- uses: actions/checkout@v2
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: BuildAndTest # can be replaced with pod lib lint with CocoaPods 1.10
run: scripts/third_party/travis/retry.sh scripts/build.sh Database ${{ matrix.target }} unit
integration:
# Don't run on private repo unless it is a PR.
if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: IntegrationTest
# Only iOS to mitigate flakes.
run: scripts/third_party/travis/retry.sh scripts/build.sh Database iOS integration
catalyst:
# Don't run on private repo unless it is a PR.
if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Setup project and Build for Catalyst
# Only build the unit tests on Catalyst. Test stopped working when GHA moved to Xcode 11.4.1.
run: scripts/test_catalyst.sh FirebaseDatabase build FirebaseDatabase-Unit-unit
quickstart_framework:
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
FRAMEWORK_ZIP: "Firebase-actions-dir.zip"
SDK: "Database"
runs-on: macOS-latest
# Make sure tests run after the zip workflow finishes.
if: github.event_name == 'schedule'
steps:
- uses: actions/checkout@v2
- name: Pull zip from GCS
run: scripts/pull_zip_gcloud.sh "$plist_secret" "$FRAMEWORK_ZIP" "${HOME}/ios_frameworks"
- name: Setup quickstart
run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="FirebaseUI/Database" scripts/setup_quickstart_framework.sh \
"${HOME}"/ios_frameworks/Firebase/FirebaseDatabase/* \
"${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \
"${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \
"${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
"${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \
"${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
- name: Install Secret FIREGSignInInfo.h
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
- name: Test Quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
- name: Remove data before upload
if: ${{ failure() }}
run: scripts/remove_data.sh "${SDK}"
- uses: actions/upload-artifact@v2
if: ${{ failure() }}
with:
name: quickstart_artifacts
path: quickstart-ios/
quickstart:
# Don't run on private repo unless it is a PR.
if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
env:
plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Setup quickstart
run: scripts/setup_quickstart.sh database
- name: Install Secret GoogleService-Info.plist
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
- name: Install Secret FIREGSignInInfo.h
run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
- name: Test objc quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database)
- name: Test swift quickstart
run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database swift)
pod-lib-lint:
# Don't run on private repo unless it is a PR.
if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
runs-on: macOS-latest
strategy:
matrix:
target: [ios, tvos, macos]
steps:
- uses: actions/checkout@v2
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: Build and test
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseDatabase.podspec --skip-tests --platforms=${{ matrix.target }}
database-cron-only:
# Don't run on private repo.
if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
runs-on: macos-latest
strategy:
matrix:
target: [ios, tvos, macos]
flags: [
'--skip-tests --use-modular-headers',
'--skip-tests --use-libraries'
]
needs: pod-lib-lint
steps:
- uses: actions/checkout@v2
- name: Setup Bundler
run: scripts/setup_bundler.sh
- name: PodLibLint database Cron
run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseDatabase.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}