Skip to content

Add test coverage collection with coveralls #192

Add test coverage collection with coveralls

Add test coverage collection with coveralls #192

Workflow file for this run

name: test
on:
push:
branches: [master]
pull_request:
branches: [master]
env:
PUB_ENVIRONMENT: bot.github
jobs:
linux:
name: webcrypto on Linux desktop / Chrome / Firefox
runs-on: ubuntu-latest
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
- name: flutter test
run: flutter test --coverage
- name: flutter test --platform chrome
run: flutter test --platform chrome --coverage
- name: flutter test integration_test/webcrypto_test.dart -d linux
run: xvfb-run flutter test integration_test/webcrypto_test.dart -d linux --coverage
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
- 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@643bc377ffa44ace6394b2b5d0d3950076de9f63
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: ./coverage/lcov.info
parallel: true
macos:
name: webcrypto on macOS desktop / Chrome
runs-on: macos-14
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
- name: Run tests and collect coverage
run: |
flutter test --coverage
flutter test --platform chrome --coverage
flutter test integration_test/webcrypto_test.dart -d macos --coverage
working-directory: ./example
- 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
- run: flutter pub run test -p vm,chrome # TODO: Enable firefox if it works
- 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@643bc377ffa44ace6394b2b5d0d3950076de9f63
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: ./coverage/lcov.info
parallel: true
windows:
name: webcrypto on Windows desktop / Chrome / Firefox
runs-on: windows-latest
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
- name: Run tests and collect coverage
run: |
flutter test --coverage
flutter test integration_test/webcrypto_test.dart -d windows --coverage
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
- 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@643bc377ffa44ace6394b2b5d0d3950076de9f63
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: ./coverage/lcov.info
parallel: true
ios:
name: webcrypto on iOS emulator (iPhone)
runs-on: macos-14
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
- name: Run tests and collect coverage
run: |
flutter test integration_test/webcrypto_test.dart -d iphone --coverage
working-directory: ./example
- 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@643bc377ffa44ace6394b2b5d0d3950076de9f63
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: ./coverage/lcov.info
parallel: true
android:
name: webcrypto on Android emulator
runs-on: ubuntu-latest
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
- 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 --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@643bc377ffa44ace6394b2b5d0d3950076de9f63
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: ./coverage/lcov.info
parallel: true
report-coverage:
needs: [linux, macos, windows, ios, android]
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true