Skip to content

m

m #4

name: common_quickstart

Check failure on line 1 in .github/workflows/common_quickstart.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/common_quickstart.yml

Invalid workflow file

(Line: 79, Col: 12): Unexpected symbol: ','. Located at position 15 within expression: inputs.product,,
permissions:
contents: read
on:
workflow_call:
# Re-usable workflows do not automatically inherit the caller's secrets.
#
# This workflow decrypts encrypted files, so the calling workflow needs to
# pass the secret to the re-usable workflow.
#
# Example:
#
# quickstart:
# uses: ./.github/workflows/common_quickstart.yml
# with:
# # ...
# secrets:
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
#
secrets:
plist_secret:
required: true
inputs:
# The product to test be tested (e.g. `ABTesting`).
product:
type: string
required: true
# Whether to test the legacy version of the quickstart.
is_legacy:
type: boolean
required: true
# The path to the encrypted `GoogleService-Info.plist` file.
plist_src_path:
type: string
required: true
# The destination path for the decrypted `GoogleService-Info.plist` file.
plist_dst_path:
type: string
required: true
# The type of quickstart to test.
#
# Options: [swift, objc]
quickstart_type:
type: string
required: false
default: objc
# Whether to run tests or just build. Defaults to true.
run_tests:
type: boolean
required: false
default: true
# A command to execute before testing.
#
# Example: `scripts/setup_quickstart.sh functions`
setup_command:
type: string
required: false
default: ""
jobs:
quickstart:
# Run on the main repo's scheduled jobs or pull requests and manual workflow invocations.
if: (github.repository == 'firebase/firebase-ios-sdk' && github.event_name == 'schedule') || contains(fromJSON('["pull_request", "workflow_dispatch"]'), github.event_name)
env:
plist_secret: ${{ secrets.plist_secret }}
runs-on: macos-15
steps:
- id: lowercase_product
shell: bash
run: echo "lowercase_product=${{ inputs.product,, }}" >> $GITHUB_OUTPUT
- name: Remove data before upload.
run: echo hello_${{ steps.lowercase_product.outputs.lowercase_product }}
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Xcode
run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- name: Run setup command.
env:
LEGACY: ${{ inputs.is_legacy && true || '' }}
run: ${{ inputs.setup_command }}
- name: Install Secret GoogleService-Info.plist
run: |
scripts/decrypt_gha_secret.sh \
${{ inputs.plist_src_path }} \
${{ inputs.plist_dst_path }} \
"$plist_secret"
- name: Build ${{ inputs.product }} Quickstart (${{ inputs.quickstart_type }} / ${{ inputs.is_legacy && 'Legacy' || 'Non-Legacy' }})
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
env:
LEGACY: ${{ inputs.is_legacy && true || '' }}
with:
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 120
command: |
scripts/test_quickstart.sh \
${{ inputs.product }} \
${{ inputs.run_tests }} \
${{ inputs.quickstart_type }}
- name: Remove data before upload.
if: ${{ failure() }}
run: scripts/remove_data.sh ${{ steps.lowercase_product.outputs.lowercase_product }}
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: quickstart_artifacts_${{ steps.lowercase_product.outputs.lowercase_product }}
path: quickstart-ios/