Skip to content

Improve the reliability of cronet_http/ok_http workflows #1736

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Mar 25, 2025
23 changes: 16 additions & 7 deletions .github/workflows/cronet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ env:
jobs:
verify:
name: Format & Analyze & Test
runs-on: ubuntu-latest
timeout-minutes: 20
runs-on: ubuntu-cpu16-ram64
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
Expand All @@ -33,10 +33,6 @@ jobs:
run:
working-directory: pkgs/cronet_http
steps:
- name: Delete unnecessary tools 🔧
uses: jlumbroso/[email protected]
with:
android: false # Don't remove Android tools
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12
with:
Expand All @@ -54,6 +50,11 @@ jobs:
- name: Analyze code
if: always() && steps.install.outcome == 'success'
run: flutter analyze --fatal-infos
- name: Enable KVM group perms
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 tests
uses: reactivecircus/android-emulator-runner@62dbb605bba737720e10b196cb4220d374026a6d
if: always() && steps.install.outcome == 'success'
Expand All @@ -62,7 +63,15 @@ jobs:
# - .github/workflows/cronet.yml
# - pkgs/cronet_http/android/build.gradle
# - pkgs/cronet_http/example/android/app/build.gradle
api-level: 21

# Google Play services does not support older Android API levels;
# as of March 2025, they supported API level 23 and higher. Instead
# of breaking when support for API level 23 is removed, just run
# the tests that rely on Google Play services with the newest API
# level (34 as of March 2025). The tests that don't rely on Google
# Play serviecs can test the oldest supported API level.
api-level: ${{ matrix.cronetHttpNoPlay == 'true' && '21' || '29' }}
disable-animations: true
arch: x86_64
target: ${{ matrix.cronetHttpNoPlay == 'true' && 'default' || 'google_apis' }}
script: cd pkgs/cronet_http/example && flutter test --dart-define=cronetHttpNoPlay=${{ matrix.cronetHttpNoPlay }} --timeout=1200s integration_test/
11 changes: 8 additions & 3 deletions .github/workflows/okhttp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ on:
- main
- master
paths:
- '.github/workflows/okhttp.yml'
- '.github/workflows/okhttp.yaml'
- 'pkgs/ok_http/**'
- 'pkgs/http_client_conformance_tests/**'
pull_request:
paths:
- '.github/workflows/okhttp.yml'
- '.github/workflows/okhttp.yaml'
- 'pkgs/ok_http/**'
- 'pkgs/http_client_conformance_tests/**'
schedule:
Expand All @@ -23,7 +23,7 @@ env:
jobs:
verify:
name: Format & Analyze & Test
runs-on: ubuntu-latest
runs-on: ubuntu-cpu16-ram64
defaults:
run:
working-directory: pkgs/ok_http
Expand All @@ -45,6 +45,11 @@ jobs:
- name: Analyze code
if: always() && steps.install.outcome == 'success'
run: flutter analyze --fatal-infos
- name: Enable KVM group perms
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 tests
uses: reactivecircus/android-emulator-runner@62dbb605bba737720e10b196cb4220d374026a6d
if: always() && steps.install.outcome == 'success'
Expand Down
Loading