Skip to content

New services: Accelerometer, Barometer, Battery, Connectivity, Gyroscope, Magnetometer, Share, ScreenBrightness, UserAccelerometer, Wakelock #1104

New services: Accelerometer, Barometer, Battery, Connectivity, Gyroscope, Magnetometer, Share, ScreenBrightness, UserAccelerometer, Wakelock

New services: Accelerometer, Barometer, Battery, Connectivity, Gyroscope, Magnetometer, Share, ScreenBrightness, UserAccelerometer, Wakelock #1104

name: macOS Integration Tests
on:
push:
paths:
- '.github/workflows/macos-integration-tests.yml'
- 'sdk/python/packages/flet/src/**'
- 'sdk/python/packages/flet/integration_tests/**'
- 'packages/flet/**'
- 'client/**'
- '.fvmrc'
pull_request:
paths:
- '.github/workflows/macos-integration-tests.yml'
- 'sdk/python/packages/flet/src/**'
- 'sdk/python/packages/flet/integration_tests/**'
- 'packages/flet/**'
- 'client/**'
- '.fvmrc'
workflow_dispatch:
# Ensure only one run per branch (PR or push), cancel older ones
concurrency:
group: macos-integration-tests-${{ github.workflow }}-${{ github.event.pull_request.head.ref || github.ref_name }}
cancel-in-progress: true
env:
FLET_TEST_SCREENSHOTS_PIXEL_RATIO: "2.0"
FLET_TEST_SCREENSHOTS_SIMILARITY_THRESHOLD: "99.0"
FLET_TEST_DISABLE_FVM: "1"
UV_PYTHON: "3.13"
jobs:
test-macos:
runs-on: macos-14
strategy:
fail-fast: false
matrix:
suite:
- apps
- examples/apps
- examples/core
- examples/cupertino
- examples/material
- controls/core
- controls/cupertino
- controls/material
- controls/theme
- controls/types
name: ${{ matrix.suite }} Integration Tests
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup uv
uses: astral-sh/setup-uv@v6
- name: Setup Flutter
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
with:
path: '.fvmrc'
cache: true
- name: Show tool versions
run: |
uv --version && uv run python --version && pod --version && flutter --version
- name: Run integration tests (${{ matrix.suite }})
working-directory: sdk/python
run: |
uv run pytest -s -o log_cli=true -o log_cli_level=INFO packages/flet/integration_tests/${{ matrix.suite }}
- name: Prepare failure screenshots
if: failure()
run: |
SAFE_SUITE="${MATRIX_SUITE//\//-}"
echo "SAFE_SUITE=$SAFE_SUITE" >> $GITHUB_ENV
env:
MATRIX_SUITE: ${{ matrix.suite }}
- name: Upload artifact
if: failure()
uses: actions/upload-artifact@v4
with:
name: integration-test-failures-macos-${{ env.SAFE_SUITE }}
path: sdk/python/packages/flet/integration_tests/${{ matrix.suite }}/**/*_actual.png
if-no-files-found: ignore