Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .docker/android-sdk.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ RUN set -o xtrace \
ruby-full ruby-bundler libstdc++6 libpulse0 libglu1-mesa locales lcov libsqlite3-dev --no-install-recommends \
# For Linux build
xz-utils acl \
clang cmake git lld \
binutils clang cmake git lld llvm \
ninja-build pkg-config \
libgtk-3-dev liblzma-dev \
libstdc++-12-dev libsecret-1-dev \
Expand Down
6 changes: 6 additions & 0 deletions .github/actions/releases/setup-ios/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ runs:
xcodebuild -downloadPlatform iOS
flutter pub get --enforce-lockfile

export GITHUB_API_PUBLIC_READONLY_TOKEN="${{ github.token }}"
# The first bundle run may update transformer-managed inputs and exit
# non-zero. Re-running picks up those updates, matching CI asset builds.
flutter build bundle --release --no-pub >/dev/null 2>&1 || true
flutter build bundle --release --no-pub

cd ios
pod install

Expand Down
6 changes: 6 additions & 0 deletions .github/actions/releases/setup-macos/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@ runs:
run: |
flutter pub get --enforce-lockfile

export GITHUB_API_PUBLIC_READONLY_TOKEN="${{ github.token }}"
# The first bundle run may update transformer-managed inputs and exit
# non-zero. Re-running picks up those updates, matching CI asset builds.
flutter build bundle --release --no-pub >/dev/null 2>&1 || true
flutter build bundle --release --no-pub

cd macos
pod install

Expand Down
11 changes: 7 additions & 4 deletions .github/workflows/desktop-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,13 @@ jobs:
id: build
env:
GITHUB_API_PUBLIC_READONLY_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Disable code signing for macOS PR builds
CODE_SIGNING_ALLOWED: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && 'NO' || '' }}
CODE_SIGNING_REQUIRED: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && 'NO' || '' }}
EXPANDED_CODE_SIGN_IDENTITY: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && '-' || '' }}
# Flutter only forwards Xcode overrides with the FLUTTER_XCODE_ prefix.
FLUTTER_XCODE_CODE_SIGNING_ALLOWED: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && 'NO' || '' }}
FLUTTER_XCODE_CODE_SIGNING_REQUIRED: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && 'NO' || '' }}
FLUTTER_XCODE_CODE_SIGN_IDENTITY: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && '' || '' }}
FLUTTER_XCODE_CODE_SIGN_STYLE: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && 'Manual' || '' }}
FLUTTER_XCODE_DEVELOPMENT_TEAM: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && '' || '' }}
FLUTTER_XCODE_PROVISIONING_PROFILE_SPECIFIER: ${{ matrix.platform == 'macos' && github.event_name == 'pull_request' && '' || '' }}
Comment on lines +86 to +89
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Restrict blank FLUTTER_XCODE overrides to PR builds

In .github/workflows/desktop-builds.yml (build step env block), these FLUTTER_XCODE_* assignments evaluate to an empty string for all events, not just pull requests. Because Flutter forwards FLUTTER_XCODE_* variables to xcodebuild, release-triggered runs (on: release) can receive explicit blank signing settings, which may override the provisioning/certificate setup from setup-macos and cause unsigned or failed macOS release artifacts. These variables should be omitted outside PR builds rather than exported as empty values.

Useful? React with 👍 / 👎.

uses: ./.github/actions/generate-assets
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/ui-tests-on-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,21 @@ jobs:
- name: Install Chrome and chromedriver
id: setup_chrome
if: ${{ matrix.browser == 'chrome' }}
uses: browser-actions/setup-chrome@v1
uses: browser-actions/setup-chrome@v2
with:
chrome-version: 116.0.5845.96
chrome-version: stable
install-chromedriver: true
install-dependencies: true

- name: Print Chrome setup
id: print_chrome_setup
if: ${{ matrix.browser == 'chrome' }}
run: |
echo "Chrome path: ${{ steps.setup_chrome.outputs.chrome-path }}"
"${{ steps.setup_chrome.outputs.chrome-path }}" --version
echo "ChromeDriver path: ${{ steps.setup_chrome.outputs.chromedriver-path }}"
"${{ steps.setup_chrome.outputs.chromedriver-path }}" --version

- name: Enable safaridriver (sudo) (MacOS)
id: enable_safari
if: ${{ matrix.browser == 'safari' }}
Expand Down Expand Up @@ -85,6 +94,7 @@ jobs:
continue-on-error: true
env:
GITHUB_API_PUBLIC_READONLY_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CHROME_EXECUTABLE: ${{ matrix.browser == 'chrome' && steps.setup_chrome.outputs.chrome-path || '' }}
run: |
dart run_integration_tests.dart \
-d ${{ matrix.display }} \
Expand Down
11 changes: 10 additions & 1 deletion .github/workflows/validate-code-guidelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,18 @@ jobs:
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Resolve SDK workspace dependencies
id: sdk_pub_get
run: |
if [ -f sdk/pubspec.lock ]; then
dart pub get --enforce-lockfile -C sdk
else
dart pub get -C sdk
fi

- name: Validate dart code
id: validate_dart
run: |
flutter analyze
flutter analyze --no-fatal-warnings --no-fatal-infos
# Currently skipped due to many changes. Will be enabled in the future after doing full sweep of the codebase
# dart format --set-exit-if-changed .
2 changes: 1 addition & 1 deletion automated_testing/gleec-qa-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ komodo-qa-automation/
# requirements.txt
skyvern>=1.0.0
pyyaml>=6.0
pydantic>=2.0
pydantic>=2.4.0
httpx>=0.27.0
```

Expand Down
4 changes: 2 additions & 2 deletions automated_testing/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
skyvern>=1.0.0
pyyaml>=6.0
pydantic>=2.0
pydantic>=2.4.0
httpx>=0.27.0
jinja2>=3.1
jinja2>=3.1.6
rich>=13.0
playwright>=1.40.0
axe-playwright-python>=0.1.0
20 changes: 17 additions & 3 deletions test_integration/runners/integration_test_runner.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import 'app_data.dart';
/// Runs integration tests for web or native apps using the `flutter drive`
/// command.
class IntegrationTestRunner {
static const _chromeExecutableEnvironmentKey = 'CHROME_EXECUTABLE';

/// Runs integration tests for web or native apps using the `flutter drive`
/// command.
///
Expand All @@ -25,6 +27,19 @@ class IntegrationTestRunner {
final String testsDirectory;

bool get isWeb => _args.device == 'web-server';
String get _browserDimension => _args.browserDimension.replaceAll(',', 'x');
String? get _chromeBinaryPath {
if (_args.browserName != 'chrome') {
return null;
}

final chromeBinary = Platform.environment[_chromeExecutableEnvironmentKey];
if (chromeBinary == null || chromeBinary.isEmpty) {
return null;
}

return chromeBinary;
}

Future<void> runTest(String test) async {
ProcessResult result;
Expand Down Expand Up @@ -106,14 +121,13 @@ class IntegrationTestRunner {
'-d',
_args.device,
'--browser-dimension',
_args.browserDimension,
_browserDimension,
'--${_args.displayMode}',
'--${_args.runMode}',
if (_args.runMode == 'profile') '--profile-memory=memory_profile.json',
'--browser-name',
_args.browserName,
'--web-renderer',
'canvaskit',
if (_chromeBinaryPath != null) '--chrome-binary=$_chromeBinaryPath',
'--${_args.pub ? '' : 'no-'}pub',
'--${_args.keepRunning ? '' : 'no-'}keep-app-running',
'--driver-port=${_args.driverPort}',
Expand Down
Loading