-
Notifications
You must be signed in to change notification settings - Fork 1.7k
99 lines (96 loc) · 3.24 KB
/
_quickstart.framework.yml
File metadata and controls
99 lines (96 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
name: _quickstart.framework
permissions:
contents: read
on:
workflow_call:
inputs:
# The product to be tested (e.g. `ABTesting`).
product:
required: true
type: string
# Optional. The scheme to be tested (e.g. `ABTesting (tvOS)`).
scheme:
required: false
type: string
default: ''
# The Run ID of a successful zip packaging workflow.
zip_run_id:
required: true
type: string
# The name of the artifact from the zip packaging workflow to download.
artifact_name:
required: true
type: string
# A command to execute before testing.
#
# Example: `scripts/setup_quickstart.sh functions`
setup_command:
required: true
type: string
# The path to the encrypted `GoogleService-Info.plist` file.
plist_src_path:
required: true
type: string
# The destination path for the decrypted `GoogleService-Info.plist` file.
plist_dst_path:
required: true
type: string
# The runner to use.
os:
required: false
type: string
default: macos-15
# The version of Xcode to use.
xcode:
required: false
type: string
default: Xcode_16.4
secrets:
# The passphrase for decrypting the GoogleService-Info.plist.
plist_secret:
required: true
jobs:
quickstart_framework:
if: ${{ !cancelled() }}
env:
plist_secret: ${{ secrets.plist_secret }}
SDK: ${{ inputs.product }}
SCHEME: ${{ inputs.scheme }}
runs-on: ${{ inputs.os }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Get framework dir
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: ${{ inputs.artifact_name }}
run-id: ${{ inputs.zip_run_id }}
github-token: ${{ secrets.github_token }}
- uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
- name: Xcode
run: sudo xcode-select -s /Applications/${{ inputs.xcode }}.app/Contents/Developer
- name: Setup Bundler
run: ./scripts/setup_bundler.sh
- name: Move frameworks
run: |
mkdir -p "${HOME}"/ios_frameworks/
find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
- name: Setup quickstart
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: Test Quickstart
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3
with:
timeout_minutes: 15
max_attempts: 2
retry_wait_seconds: 120
command: ([ -z $plist_secret ] || scripts/test_quickstart_framework.sh "${SDK}" "${SCHEME}")
# Failure sequence to upload artifact.
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: failure()
with:
name: quickstart_artifacts_${{ inputs.product }}_${{ inputs.artifact_name }}
path: |
quickstart-ios/
!quickstart-ios/**/GoogleService-Info.plist