File tree Expand file tree Collapse file tree 2 files changed +112
-0
lines changed
samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample Expand file tree Collapse file tree 2 files changed +112
-0
lines changed Original file line number Diff line number Diff line change
1
+ name : SwiftUI Auth
2
+
3
+ on :
4
+ push :
5
+ branches : [ main ]
6
+ paths :
7
+ - ' .github/workflows/swiftui-auth.yml'
8
+ - ' samples/swiftui/**'
9
+ - ' FirebaseSwiftUI/**'
10
+ - ' Package.swift'
11
+ pull_request :
12
+ branches : [ main ]
13
+ paths :
14
+ - ' .github/workflows/swiftui-auth.yml'
15
+ - ' samples/swiftui/**'
16
+ - ' FirebaseSwiftUI/**'
17
+ - ' Package.swift'
18
+
19
+ workflow_dispatch :
20
+
21
+ jobs :
22
+ swiftui-auth :
23
+ runs-on : macOS-latest
24
+ timeout-minutes : 30
25
+ steps :
26
+ - uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
27
+ - uses : actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a
28
+ name : Install Node.js 20
29
+ with :
30
+ node-version : ' 20'
31
+ - uses : actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b
32
+ with :
33
+ distribution : ' temurin'
34
+ java-version : ' 17'
35
+ - name : Install Firebase
36
+ run : |
37
+ sudo npm i -g firebase-tools
38
+ - name : Start Firebase Emulator
39
+ run : |
40
+ sudo chown -R 501:20 && cd ./samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample && ./start-firebase-emulator.sh
41
+ - name : Select Xcode version
42
+ run : |
43
+ sudo xcode-select -switch /Applications/Xcode_16.1.app/Contents/Developer
44
+ - name : Disable iOS Simulator hardware keyboard
45
+ # needed for SecureFields otherwise the UI flow tests will fail
46
+ run : |
47
+ defaults delete com.apple.iphonesimulator ConnectHardwareKeyboard || true
48
+ - name : Run Integration Tests
49
+ run : |
50
+ cd ./samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample
51
+ xcodebuild test -scheme FirebaseSwiftUIExampleTests -destination 'platform=iOS Simulator,name=iPhone 16 Plus' -enableCodeCoverage YES
52
+ - name : Run View UI Tests
53
+ run : |
54
+ cd ./samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample
55
+ xcodebuild test -scheme FirebaseSwiftUIExampleUITests -destination 'platform=iOS Simulator,name=iPhone 16 Plus' -enableCodeCoverage YES
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+ if ! [ -x " $( command -v firebase) " ]; then
3
+ echo " ❌ Firebase tools CLI is missing."
4
+ exit 1
5
+ fi
6
+
7
+ if ! [ -x " $( command -v node) " ]; then
8
+ echo " ❌ Node.js is missing."
9
+ exit 1
10
+ fi
11
+
12
+ if ! [ -x " $( command -v npm) " ]; then
13
+ echo " ❌ NPM is missing."
14
+ exit 1
15
+ fi
16
+
17
+ EMU_START_COMMAND=" firebase emulators:start --only auth --project flutterfire-e2e-tests"
18
+
19
+ MAX_RETRIES=3
20
+ MAX_CHECKATTEMPTS=60
21
+ CHECKATTEMPTS_WAIT=1
22
+
23
+ RETRIES=1
24
+ while [ $RETRIES -le $MAX_RETRIES ]; do
25
+
26
+ if [[ -z " ${CI} " ]]; then
27
+ echo " Starting Firebase Emulator in foreground."
28
+ $EMU_START_COMMAND
29
+ exit 0
30
+ else
31
+ echo " Starting Firebase Emulator in background."
32
+ $EMU_START_COMMAND &
33
+ CHECKATTEMPTS=1
34
+ while [ $CHECKATTEMPTS -le $MAX_CHECKATTEMPTS ]; do
35
+ sleep $CHECKATTEMPTS_WAIT
36
+ if curl --output /dev/null --silent --fail http://localhost:8080; then
37
+ # Check again since it can exit before the emulator is ready.
38
+ sleep 15
39
+ if curl --output /dev/null --silent --fail http://localhost:8080; then
40
+ echo " Firebase Emulator is online!"
41
+ exit 0
42
+ else
43
+ echo " ❌ Firebase Emulator exited after startup."
44
+ exit 1
45
+ fi
46
+ fi
47
+ echo " Waiting for Firebase Emulator to come online, check $CHECKATTEMPTS of $MAX_CHECKATTEMPTS ..."
48
+ (( CHECKATTEMPTS = CHECKATTEMPTS + 1 ))
49
+ done
50
+ fi
51
+
52
+ echo " Firebase Emulator did not come online in $MAX_CHECKATTEMPTS checks. Try $RETRIES of $MAX_RETRIES ."
53
+ (( RETRIES = RETRIES + 1 ))
54
+
55
+ done
56
+ echo " Firebase Emulator did not come online after $MAX_RETRIES attempts."
57
+ exit 1
You can’t perform that action at this time.
0 commit comments