test: separate out e2e test workflows #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macOS | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
paths-ignore: | |
- 'docs/**' | |
- 'website/**' | |
- '**/example/**' | |
- '**/flutterfire_ui/**' | |
- '**.md' | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- 'docs/**' | |
- 'website/**' | |
- '**/example/**' | |
- '**/flutterfire_ui/**' | |
- '**.md' | |
jobs: | |
macos: | |
runs-on: macos-14 | |
timeout-minutes: 45 | |
strategy: | |
fail-fast: false | |
matrix: | |
working_directory: | |
['tests', 'packages/cloud_firestore/cloud_firestore/example'] | |
steps: | |
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 | |
- uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b | |
name: Install Node.js 20 | |
with: | |
node-version: '20' | |
- uses: actions/setup-java@6a0805fcefea3d4657a47ac4c165951e33482018 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 | |
name: Xcode Compile Cache | |
with: | |
key: ${{ runner.os }}-macos-v2 | |
max-size: 700M | |
- uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 | |
name: Pods Cache | |
id: pods-cache | |
with: | |
path: tests/macos/Pods | |
key: ${{ runner.os }}-pods-v2-${{ hashFiles('tests/macos/Podfile.lock') }} | |
restore-keys: ${{ runner.os }}-macos-pods-v1 | |
- name: Cache Firebase Emulator | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 | |
with: | |
path: ~/.cache/firebase/emulators | |
key: firebase-emulators-v3-${{ github.run_id }} | |
restore-keys: firebase-emulators-v3 | |
- uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 | |
with: | |
channel: 'stable' | |
cache: true | |
- uses: bluefireteam/melos-action@7e70fbe34bbd91a75eb505eeb4174b0ac9a1df52 | |
with: | |
run-bootstrap: false | |
melos-version: '5.3.0' | |
- name: 'Bootstrap package' | |
run: melos bootstrap --scope tests && melos bootstrap --scope "cloud_firestore*" | |
- name: 'Install Tools' | |
run: | | |
sudo npm i -g firebase-tools | |
- name: 'Build Application' | |
working-directory: ${{ matrix.working_directory }} | |
run: | | |
export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | |
export CCACHE_SLOPPINESS=clang_index_store,file_stat_matches,include_file_ctime,include_file_mtime,ivfsoverlay,pch_defines,modules,system_headers,time_macros | |
export CCACHE_FILECLONE=true | |
export CCACHE_DEPEND=true | |
export CCACHE_INODECACHE=true | |
ccache -s | |
flutter build macos --debug --target=./integration_test/e2e_test.dart --device-id=macos --dart-define=CI=true | |
ccache -s | |
- name: Start Firebase Emulator | |
# Chown the npm cache directory to the runner user to avoid permission issues | |
run: sudo chown -R 501:20 "/Users/runner/.npm" && cd ./.github/workflows/scripts && ./start-firebase-emulator.sh | |
- name: 'E2E Tests' | |
working-directory: ${{ matrix.working_directory }} | |
run: | | |
flutter test \ | |
integration_test/e2e_test.dart \ | |
-d macos \ | |
--dart-define=CI=true |