Skip to content

Upgrade to jni/jnigen 0.15.x #1030

Upgrade to jni/jnigen 0.15.x

Upgrade to jni/jnigen 0.15.x #1030

Workflow file for this run

name: package:cronet_http CI
on:
push:
branches:
- main
- master
paths:
- '.github/workflows/cronet.yml'
- 'pkgs/cronet_http/**'
- 'pkgs/http_client_conformance_tests/**'
pull_request:
paths:
- '.github/workflows/cronet.yml'
- 'pkgs/cronet_http/**'
- 'pkgs/http_client_conformance_tests/**'
schedule:
- cron: "0 0 * * 0"
env:
PUB_ENVIRONMENT: bot.github
jobs:
verify:
name: Format & Analyze & Test (${{ matrix.cronetHttpNoPlay == 'true' && 'without Google Play' || 'with Google Play'}})
runs-on: ubuntu-cpu16-ram64
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
cronetHttpNoPlay: ['false', 'true']
defaults:
run:
working-directory: pkgs/cronet_http
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165
with:
distribution: 'zulu'
java-version: '17'
- uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e
with:
channel: 'stable'
- id: install
name: Install dependencies
run: flutter pub get
- name: Check formatting
if: always() && steps.install.outcome == 'success'
run: dart format --output=none --set-exit-if-changed .
- name: Analyze code
if: always() && steps.install.outcome == 'success'
run: flutter analyze --fatal-infos
- name: Build APK
run: cd pkgs/cronet_http/example && flutter build apk && cd ..
- name: Regenerate
run: dart run jnigen --config jnigen.yaml
- 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 (${{ matrix.cronetHttpNoPlay == 'true' && 'without Google Play' || 'with Google Play'}})
uses: reactivecircus/android-emulator-runner@1dcd0090116d15e7c562f8db72807de5e036a4ed
if: always() && steps.install.outcome == 'success'
with:
# api-level/minSdkVersion should be help in sync in:
# - .github/workflows/cronet.yml
# - pkgs/cronet_http/android/build.gradle
# - pkgs/cronet_http/example/android/app/build.gradle
# 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' && '24' || '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/