|
1 | | -name: pipeline-e2e |
| 1 | +name: e2e-pipeline |
2 | 2 |
|
3 | 3 | concurrency: |
4 | 4 | group: ${{ github.workflow }}-${{ github.ref }} |
5 | 5 | cancel-in-progress: true |
6 | 6 |
|
| 7 | +# on: |
| 8 | +# pull_request: |
| 9 | +# paths: |
| 10 | +# - 'packages/cloud_firestore/cloud_firestore/pipeline_example/**' |
| 11 | +# - 'packages/cloud_firestore/cloud_firestore/lib/**' |
| 12 | +# - '.github/workflows/e2e_tests_pipeline.yaml' |
| 13 | +# push: |
| 14 | +# branches: |
| 15 | +# - main |
| 16 | +# - firestore-pipelines-dart-api-v2 |
| 17 | +# - master |
| 18 | +# paths: |
| 19 | +# - 'packages/cloud_firestore/cloud_firestore/pipeline_example/**' |
| 20 | +# - 'packages/cloud_firestore/cloud_firestore/lib/**' |
| 21 | +# - '.github/workflows/e2e_tests_pipeline.yaml' |
| 22 | + |
7 | 23 | on: |
8 | 24 | pull_request: |
9 | | - paths: |
10 | | - - 'packages/cloud_firestore/cloud_firestore/pipeline_example/**' |
11 | | - - 'packages/cloud_firestore/cloud_firestore/lib/**' |
12 | 25 | push: |
13 | | - branches: |
14 | | - - main |
15 | | - - firestore-pipelines-dart-api-v2 |
16 | | - - master |
17 | | - paths: |
18 | | - - 'packages/cloud_firestore/cloud_firestore/pipeline_example/**' |
19 | | - - 'packages/cloud_firestore/cloud_firestore/lib/**' |
20 | 26 |
|
21 | 27 | jobs: |
22 | 28 | pipeline-e2e-android: |
@@ -140,3 +146,55 @@ jobs: |
140 | 146 | working-directory: packages/cloud_firestore/cloud_firestore/pipeline_example |
141 | 147 | run: | |
142 | 148 | flutter test integration_test/pipeline/pipeline_live_test.dart --timeout 10x --dart-define=CI=true -d chrome |
| 149 | +
|
| 150 | + pipeline-e2e-ios: |
| 151 | + if: ${{ secrets.PIPELINE_E2E_FIREBASE_OPTIONS_DART != '' }} |
| 152 | + runs-on: macos-15 |
| 153 | + timeout-minutes: 50 |
| 154 | + steps: |
| 155 | + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 |
| 156 | + - uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a |
| 157 | + name: Install Node.js 20 |
| 158 | + with: |
| 159 | + node-version: '20' |
| 160 | + - name: Xcode |
| 161 | + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer |
| 162 | + - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b |
| 163 | + with: |
| 164 | + distribution: 'temurin' |
| 165 | + java-version: '21' |
| 166 | + - uses: subosito/flutter-action@f2c4f6686ca8e8d6e6d0f28410eeef506ed66aff |
| 167 | + with: |
| 168 | + channel: 'stable' |
| 169 | + cache: true |
| 170 | + cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:" |
| 171 | + pub-cache-key: "flutter-pub-:os:-:channel:-:version:-:arch:-:hash:" |
| 172 | + - uses: bluefireteam/melos-action@c7dcb921b23cc520cace360b95d02b37bf09cdaa |
| 173 | + with: |
| 174 | + run-bootstrap: false |
| 175 | + melos-version: '5.3.0' |
| 176 | + - name: Inject Firebase config for pipeline E2E |
| 177 | + env: |
| 178 | + FIREBASE_OPTIONS_DART: ${{ secrets.PIPELINE_E2E_FIREBASE_OPTIONS_DART }} |
| 179 | + GOOGLE_SERVICES_JSON: ${{ secrets.PIPELINE_E2E_GOOGLE_SERVICES_JSON }} |
| 180 | + GOOGLE_SERVICE_INFO_PLIST: ${{ secrets.PIPELINE_E2E_GOOGLE_SERVICE_INFO_PLIST }} |
| 181 | + run: | |
| 182 | + echo "$FIREBASE_OPTIONS_DART" > packages/cloud_firestore/cloud_firestore/pipeline_example/lib/firebase_options.dart |
| 183 | + echo "$GOOGLE_SERVICES_JSON" > packages/cloud_firestore/cloud_firestore/pipeline_example/android/app/google-services.json |
| 184 | + echo "$GOOGLE_SERVICE_INFO_PLIST" > packages/cloud_firestore/cloud_firestore/pipeline_example/ios/Runner/GoogleService-Info.plist |
| 185 | + - name: Bootstrap package |
| 186 | + run: melos bootstrap --scope "cloud_firestore*" |
| 187 | + - uses: futureware-tech/simulator-action@e89aa8f93d3aec35083ff49d2854d07f7186f7f5 |
| 188 | + id: simulator |
| 189 | + with: |
| 190 | + model: "iPhone 16" |
| 191 | + - name: Build iOS (simulator) |
| 192 | + working-directory: packages/cloud_firestore/cloud_firestore/pipeline_example |
| 193 | + run: | |
| 194 | + flutter build ios --no-codesign --simulator --debug --target=./integration_test/pipeline/pipeline_live_test.dart --dart-define=CI=true |
| 195 | + - name: Run pipeline E2E tests (iOS) |
| 196 | + working-directory: packages/cloud_firestore/cloud_firestore/pipeline_example |
| 197 | + env: |
| 198 | + SIMULATOR: ${{ steps.simulator.outputs.udid }} |
| 199 | + run: | |
| 200 | + flutter test integration_test/pipeline/pipeline_live_test.dart -d "$SIMULATOR" --timeout 10x --dart-define=CI=true |
0 commit comments