182 lines
4.2 KiB
YAML
182 lines
4.2 KiB
YAML
name: my_plugin
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- ".github/workflows/my_plugin.yaml"
|
|
- "src/my_plugin/**"
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- ".github/workflows/my_plugin.yaml"
|
|
- "src/my_plugin/**"
|
|
|
|
jobs:
|
|
build:
|
|
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
|
|
with:
|
|
flutter_channel: stable
|
|
flutter_version: 2.10.1
|
|
working_directory: src/my_plugin
|
|
|
|
android:
|
|
runs-on: macos-10.15
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: src/my_plugin/example
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-java@v2
|
|
with:
|
|
distribution: "temurin"
|
|
java-version: "11"
|
|
|
|
- uses: subosito/flutter-action@v2
|
|
|
|
- name: Flutter Doctor
|
|
run: flutter doctor -v
|
|
|
|
- name: AVD Cache
|
|
uses: actions/cache@v2
|
|
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/example
|
|
|
|
ios:
|
|
runs-on: macos-10.15
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: src/my_plugin/example
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: subosito/flutter-action@v2
|
|
|
|
- name: Flutter Doctor
|
|
run: flutter doctor -v
|
|
|
|
- name: Start Simulator
|
|
run: open -a Simulator.app
|
|
|
|
- name: Integration Tests
|
|
run: flutter test integration_test -d iPhone
|
|
|
|
linux:
|
|
runs-on: ubuntu-18.04
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: src/my_plugin/example
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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-10.15
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: src/my_plugin/example
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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-10.15
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: src/my_plugin/example
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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/example
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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
|