Skip to content

ci: add multi-platform workflows and accessibility testing#770

Draft
dpy013 wants to merge 20 commits into
wanghongenpin:mainfrom
dpy013:ci
Draft

ci: add multi-platform workflows and accessibility testing#770
dpy013 wants to merge 20 commits into
wanghongenpin:mainfrom
dpy013:ci

Conversation

@dpy013

@dpy013 dpy013 commented May 19, 2026

Copy link
Copy Markdown

Summary

  • add separate GitHub Actions workflows for Linux, Windows, Android, iOS, and accessibility testing
  • support platform test/build jobs and upload build artifacts for desktop and mobile targets
  • include CI fixes for iOS dependency compatibility and Android signing fallback

Notes

  • this PR comes from the dpy013:ci branch
  • legacy environment-dependent tests remain non-blocking in CI where previously configured

dpy013 and others added 13 commits May 19, 2026 07:08
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 19, 2026 00:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds per-OS GitHub Actions workflows (Linux, Windows, Android, iOS) and a dedicated accessibility-test workflow, plus the supporting changes that make those workflows succeed: an Android signing fallback when key.properties is absent, a device_info_plus version pin for iOS compatibility, a small HistoryTask.clear signature fix to match the updated ListenerListEvent API, and a new test/accessibility/accessibility_test.dart covering tooltip labels on SelectionActionBar and IconText.

Changes:

  • New workflows for Linux/Windows/Android/iOS (test + build with artifact upload) and a separate accessibility-test workflow, all gated on a shared NON_BLOCKING_TESTS_JSON list of legacy tests run with continue-on-error.
  • Android release signing now falls back to debug signing when no keystore is configured; iOS-compat pin of device_info_plus to 12.3.0.
  • Adds test/accessibility/accessibility_test.dart and fixes HistoryTask.clear to match the abstract ListenerListEvent.clear(List<T> items) signature.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
.github/workflows/flutter-linux.yml New Linux test + desktop build workflow with artifact upload.
.github/workflows/flutter-windows.yml New Windows test + desktop build workflow with artifact upload.
.github/workflows/flutter-android.yml New Android test + APK build workflow (builds debug APK).
.github/workflows/flutter-ios.yml New iOS test + unsigned release build workflow.
.github/workflows/flutter-accessibility.yml New workflow running only the new accessibility test file.
test/accessibility/accessibility_test.dart New widget tests checking tooltip labels and tap-target guidelines.
pubspec.yaml Pins device_info_plus to 12.3.0 for iOS compatibility.
android/app/build.gradle Adds hasReleaseSigning fallback so release builds use debug signing when no keystore is present; debug build now uses debug keys.
lib/storage/histories.dart Fixes HistoryTask.clear to take List<HttpRequest> items, matching the base class.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +17 to +55
linux-test:
name: Flutter test (Linux)
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
cache: true

- name: Show Flutter version
run: flutter --version

- name: Install dependencies
run: flutter pub get

- name: Run stable tests
shell: pwsh
run: |
$nonBlockingTests = ConvertFrom-Json '${{ env.NON_BLOCKING_TESTS_JSON }}'
$allTests = Get-ChildItem -Path test -Filter *.dart -File | Sort-Object Name | ForEach-Object { "test/$($_.Name)" }
$stableTests = $allTests | Where-Object { $_ -notin $nonBlockingTests }
Write-Host "Running stable tests:"
$stableTests | ForEach-Object { Write-Host $_ }
& flutter test @stableTests

- name: Run non-blocking legacy tests
shell: pwsh
continue-on-error: true
run: |
$nonBlockingTests = ConvertFrom-Json '${{ env.NON_BLOCKING_TESTS_JSON }}'
Write-Host "Running non-blocking tests:"
$nonBlockingTests | ForEach-Object { Write-Host $_ }
& flutter test @nonBlockingTests
Comment on lines +4 to +5
push:
pull_request:
Comment thread .github/workflows/flutter-android.yml Outdated
Comment on lines +86 to +92
run: flutter build apk --debug

- name: Upload Android APK
uses: actions/upload-artifact@v4
with:
name: proxypin-android-apk
path: build/app/outputs/flutter-apk/app-debug.apk
Comment thread pubspec.yaml Outdated
flutter_highlight: ^0.7.0
flutter_desktop_context_menu: ^0.2.0
device_info_plus: ^12.4.0
device_info_plus: 12.3.0
Comment thread android/app/build.gradle Outdated
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
def hasReleaseSigning = keystoreProperties['storeFile']
Comment on lines +23 to +44
expect(find.byTooltip('Repeat'), findsOneWidget);
expect(find.byTooltip('Export'), findsOneWidget);
expect(find.byTooltip('Delete'), findsOneWidget);
expect(find.byTooltip('Cancel'), findsOneWidget);

await expectLater(tester, meetsGuideline(labeledTapTargetGuideline));
});

testWidgets('toolbox action keeps an accessible label', (tester) async {
await _pumpLocalizedApp(
tester,
child: Center(
child: IconText(
icon: Icons.code,
text: 'JavaScript',
tooltip: 'JavaScript',
onTap: () {},
),
),
);

expect(find.byTooltip('JavaScript'), findsOneWidget);
Comment thread .github/workflows/flutter-windows.yml Outdated
shell: pwsh
run: |
$nonBlockingTests = ConvertFrom-Json '${{ env.NON_BLOCKING_TESTS_JSON }}'
$allTests = Get-ChildItem -Path test -Filter *.dart -File | Sort-Object Name | ForEach-Object { "test/$($_.Name)" }
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dpy013

dpy013 commented May 19, 2026

Copy link
Copy Markdown
Author

Addressed the Copilot review in 5b15414:\n\n- keep Flutter tests in the Linux workflow only to avoid duplicate cross-OS test runs\n- restrict push triggers to main across the new workflows\n- recurse test discovery in Linux while keeping est/accessibility/** in its dedicated workflow\n- build and upload a release Android APK so CI exercises the signing fallback\n- make the Android signing guard explicit, relax the device_info_plus pin to a bounded range with an iOS CI note, and align accessibility assertions with localization values

dpy013 and others added 4 commits May 19, 2026 09:57
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dpy013
dpy013 marked this pull request as draft May 19, 2026 03:11
@dpy013
dpy013 requested a review from Copilot May 19, 2026 03:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

dpy013 and others added 2 commits May 22, 2026 07:38
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants