Skip to content

More support for wasm #338

More support for wasm

More support for wasm #338

Workflow file for this run

name: test
on:
push:
branches: [master]
pull_request:
branches: [master]
env:
PUB_ENVIRONMENT: bot.github
jobs:
lints:
name: Format + Lints
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- run: flutter pub get
- run: dart format --output none --set-exit-if-changed .
- run: dart analyze --fatal-warnings .
linux:
name: Linux desktop / Chrome / Firefox
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- name: Configure Flutter
run: |
sudo apt-get update -y
sudo apt-get install -y ninja-build libgtk-3-dev
flutter config --no-analytics
- run: flutter pub get
- run: flutter pub run webcrypto:setup
- run: flutter test
- run: flutter test --platform chrome
- run: flutter test --platform chrome --wasm
- run: xvfb-run flutter test integration_test/webcrypto_test.dart -d linux
working-directory: ./example
- uses: nanasess/setup-chromedriver@v2
- name: Run integration_test with chromedriver
working-directory: ./example
run: |
xvfb-run ../tool/with-chromedriver.sh flutter drive \
--driver=test_driver/integration_test.dart \
--target=integration_test/webcrypto_test.dart \
-d chrome
- run: xvfb-run flutter pub run test -p vm,chrome,firefox
macos-14:
name: MacOS 14 desktop / Chrome / Firefox
runs-on: macos-14 # Test with xcode 15
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- name: Configure Flutter
run: |
flutter config --no-analytics
- run: flutter pub get
- run: flutter pub run webcrypto:setup
- run: flutter test
- run: flutter test --platform chrome
- run: flutter test --platform chrome --wasm
- run: flutter test integration_test/webcrypto_test.dart -d macos
working-directory: ./example
# TODO: Enable chromedriver testing on MacOS when it works reliably
#- uses: nanasess/setup-chromedriver@v2
#- name: Run integration_test with chromedriver
# working-directory: ./example
# run: |
# ../tool/with-chromedriver.sh flutter drive \
# --driver=test_driver/integration_test.dart \
# --target=integration_test/webcrypto_test.dart \
# -d chrome
- uses: browser-actions/setup-firefox@v1
- name: flutter pub run test -p vm,chrome,firefox
shell: bash
# Remove FIREFOX_EXECUTABLE override when flutter upgrades past package:test 1.25.8
# Issue is fixed in https://github.com/dart-lang/test/pull/2276
run: |
export FIREFOX_EXECUTABLE="$(which firefox)"
flutter pub run test -p vm,chrome,firefox
macos-15:
name: MacOS 15 desktop / Chrome / Firefox
runs-on: macos-15 # Test with xcode 16
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- name: Configure Flutter
run: |
flutter config --no-analytics
- run: flutter pub get
- run: flutter pub run webcrypto:setup
- run: flutter test
- run: flutter test --platform chrome
- run: flutter test --platform chrome --wasm
- run: flutter test integration_test/webcrypto_test.dart -d macos
working-directory: ./example
# TODO: Enable chromedriver testing on MacOS when it works reliably
- uses: browser-actions/setup-firefox@v1
- name: flutter pub run test -p vm,chrome,firefox
shell: bash
# Remove FIREFOX_EXECUTABLE override when flutter upgrades past package:test 1.25.8
# Issue is fixed in https://github.com/dart-lang/test/pull/2276
run: |
export FIREFOX_EXECUTABLE="$(which firefox)"
flutter pub run test -p vm,chrome,firefox
windows:
name: Windows desktop / Chrome / Firefox
runs-on: windows-latest
timeout-minutes: 15
steps:
- uses: ilammy/setup-nasm@v1
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- name: Configure Flutter
run: |
flutter config --no-analytics
- run: flutter pub get
- run: flutter pub run webcrypto:setup
- run: flutter test
#- run: flutter test --platform chrome
#- run: flutter test --platform chrome --wasm
- run: flutter test integration_test/webcrypto_test.dart -d windows
working-directory: ./example
- uses: nanasess/setup-chromedriver@v2
- name: Run integration_test with chromedriver
working-directory: ./example
shell: bash
run: |
../tool/with-chromedriver.sh flutter drive \
--driver=test_driver/integration_test.dart \
--target=integration_test/webcrypto_test.dart \
-d chrome
- run: flutter pub run test -p vm,chrome,firefox
ios:
name: iOS emulator (iPhone)
runs-on: macos-14
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- name: Configure Flutter
run: |
flutter config --no-analytics
- uses: futureware-tech/simulator-action@v3
with:
model: 'iPhone 15'
- run: flutter pub get
- run: flutter test integration_test/webcrypto_test.dart -d iphone
working-directory: ./example
android:
name: Android emulator
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
- name: Configure Flutter
run: |
flutter config --no-analytics
- run: flutter pub get
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run flutter test integration_test/webcrypto_test.dart -d android
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 28
working-directory: ./example
script: flutter test integration_test/webcrypto_test.dart -d android
linux-coverage:
name: Linux desktop / Chrome / Firefox (coverage)
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- name: Configure Flutter
run: |
sudo apt-get update -y
sudo apt-get install -y ninja-build libgtk-3-dev
flutter config --no-analytics
- run: flutter pub get
- run: flutter pub run webcrypto:setup
- run: xvfb-run flutter pub run test -p vm,chrome,firefox --coverage ./coverage
# Report collected coverage
- name: Convert coverage to lcov
run: dart run coverage:format_coverage -i ./coverage -o ./coverage/lcov.info --lcov --report-on lib/
- uses: coverallsapp/github-action@v2
with:
flag-name: linux
parallel: true
windows-coverage:
name: Windows desktop / Chrome / Firefox (coverage)
runs-on: windows-latest
timeout-minutes: 15
steps:
- uses: ilammy/setup-nasm@v1
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
- name: Configure Flutter
run: |
flutter config --no-analytics
- run: flutter pub get
- run: flutter pub run webcrypto:setup
- run: flutter test
- run: flutter pub run test -p vm,chrome,firefox --coverage ./coverage
# Report collected coverage
- name: Convert coverage to lcov
run: dart run coverage:format_coverage -i ./coverage -o ./coverage/lcov.info --lcov --report-on lib/
- uses: coverallsapp/github-action@v2
with:
flag-name: windows
parallel: true
coverage:
name: Report to coveralls
runs-on: ubuntu-latest
timeout-minutes: 15
needs:
- linux-coverage
- windows-coverage
steps:
- uses: coverallsapp/github-action@v2
with:
parallel-finished: true