This repository has been archived by the owner on Feb 23, 2024. It is now read-only.
fix: flaky integrated tests #151
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: my_plugin | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
pull_request: | |
paths: | |
- ".github/workflows/my_plugin.yaml" | |
- "src/my_plugin/my_plugin/**" | |
push: | |
branches: | |
- main | |
paths: | |
- ".github/workflows/my_plugin.yaml" | |
- "src/my_plugin/my_plugin/**" | |
jobs: | |
spell-check: | |
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/spell_check.yml@v1 | |
with: | |
includes: | | |
**/*.md | |
!brick/**/*.md | |
.*/**/*.md | |
modified_files_only: false | |
build: | |
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1 | |
with: | |
flutter_channel: stable | |
flutter_version: 3.10.0 | |
working_directory: src/my_plugin/my_plugin | |
android: | |
runs-on: macos-latest | |
if: false # TODO: Integration tests are flaky, see https://github.com/VeryGoodOpenSource/very_good_flutter_plugin/issues/79 | |
defaults: | |
run: | |
working-directory: src/my_plugin/my_plugin/example | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: "temurin" | |
java-version: "11" | |
- uses: subosito/flutter-action@v2 | |
- name: Flutter Doctor | |
run: flutter doctor -v | |
- name: AVD Cache | |
uses: actions/cache@v3 | |
id: avd-cache | |
with: | |
path: | | |
~/.android/avd/* | |
~/.android/adb* | |
key: avd-29 | |
- name: Cache AVD Snapshot | |
if: steps.avd-cache.outputs.cache-hit != 'true' | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: 29 | |
force-avd-creation: false | |
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
disable-animations: false | |
script: echo "Generated AVD snapshot for caching." | |
- name: Integration Tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: 29 | |
script: flutter test integration_test | |
working-directory: src/my_plugin/my_plugin/example | |
ios: | |
runs-on: macos-latest | |
defaults: | |
run: | |
working-directory: src/my_plugin/my_plugin/example | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: subosito/flutter-action@v2 | |
- name: Flutter Doctor | |
run: flutter doctor -v | |
- name: Start Simulator | |
# Start an iPhone simulator | |
run: | | |
UDID=$(xcrun xctrace list devices | grep "^iPhone" | awk '{gsub(/[()]/,""); print $NF}' | head -n 1) | |
echo $UDID | |
xcrun simctl boot "${UDID:?No Simulator with this name found}" | |
- name: Integration Tests | |
run: flutter test integration_test -d iPhone | |
linux: | |
runs-on: ubuntu-18.04 | |
if: false # TODO: Integration tests are flaky, see https://github.com/VeryGoodOpenSource/very_good_flutter_plugin/issues/79 | |
defaults: | |
run: | |
working-directory: src/my_plugin/my_plugin/example | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: subosito/flutter-action@v2 | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev liblzma-dev | |
- name: Enable desktop support | |
run: flutter config --enable-linux-desktop | |
- name: Flutter Doctor | |
run: flutter doctor -v | |
- name: Integration Tests | |
run: xvfb-run flutter test integration_test -d linux | |
macos: | |
runs-on: macos-latest | |
if: false # TODO: Macos tests are flaky, see https://github.com/VeryGoodOpenSource/very_good_flutter_plugin/issues/79 | |
defaults: | |
run: | |
working-directory: src/my_plugin/my_plugin/example | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: subosito/flutter-action@v2 | |
- name: Enable desktop support | |
run: flutter config --enable-macos-desktop | |
- name: Flutter Doctor | |
run: flutter doctor -v | |
- name: Integration Tests | |
run: flutter test integration_test -d macos | |
web: | |
runs-on: macos-latest | |
defaults: | |
run: | |
working-directory: src/my_plugin/my_plugin/example | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: subosito/flutter-action@v2 | |
- name: Flutter Doctor | |
run: flutter doctor -v | |
- name: Run Chromedriver | |
run: | | |
git clone https://github.com/felangel/web_installers | |
cd web_installers/packages/web_drivers | |
dart pub get | |
dart lib/web_driver_installer.dart chromedriver --install-only | |
./chromedriver/chromedriver --port=4444 & | |
- name: Integration Tests | |
run: flutter drive --driver test_driver/integration_test.dart --target integration_test/app_test.dart -d web-server --browser-name=chrome | |
windows: | |
runs-on: windows-2019 | |
defaults: | |
run: | |
working-directory: src/my_plugin/my_plugin/example | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: subosito/flutter-action@v2 | |
- name: Enable desktop support | |
run: flutter config --enable-windows-desktop | |
- name: Flutter Doctor | |
run: flutter doctor -v | |
- name: Integration Tests | |
run: flutter test integration_test -d windows |