Upgrade to jni/jnigen 0.15.x #1038
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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: | |
| generate: | |
| name: jnigen | |
| runs-on: ubuntu-latest | |
| 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: Build APK | |
| run: cd example && flutter build apk && cd .. | |
| - name: Upgrade | |
| # Set this to `true` if you are using this workflow to regenerate the jni | |
| # bindings. | |
| if: false | |
| run: dart pub upgrade --major-versions jnigen jni | |
| - name: Regenerate | |
| run: dart run jnigen --config jnigen.yaml | |
| - name: Generated Diff | |
| id: diff | |
| run: git diff --exit-code lib/src/jni/jni_bindings.dart | |
| - name: Upload bindings | |
| if: failure() | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 | |
| with: | |
| name: JNI Bindings | |
| path: pkgs/cronet_http/lib/src/jni/jni_bindings.dart | |
| retention-days: 1 | |
| 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: 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/ |