# Setup Flutter Cross-platform composite action to set up the Flutter SDK with automated caching on macOS, Windows, and Linux. Supports local Git mirrors with automatic fallback to upstream GitHub. ## Features - **Multi-OS Support**: Native setup for macOS (Apple Silicon & Intel), Windows (PowerShell), and Linux. - **Git Mirror & Fallback**: Clones from local Gitea Flutter mirror (`https://git.rodydavis.dev/rodydavis/flutter.git`) with automatic fallback to `https://github.com/flutter/flutter.git`. - **SDK Caching**: Uses `actions/cache@v3` to cache the full Flutter SDK directory across workflow runs based on OS, CPU architecture, and version. - **Desktop Windowing**: Automatically configures desktop windowing support and exports Flutter to `$GITHUB_PATH`. ## Inputs | Name | Description | Required | Default | | :--- | :--- | :--- | :--- | | `version` | Flutter channel, tag, or branch (e.g., `master`, `stable`, `3.29.0`). | No | `master` | | `mirror_url` | Git repository URL for Flutter SDK mirror. | No | `https://git.rodydavis.dev/rodydavis/flutter.git` | | `git_token` | Gitea token for authenticated git mirror access. | No | `''` | | `cache` | Enable Flutter SDK caching across CI runs. | No | `true` | | `enable_windowing` | Enable desktop windowing and platform configs. | No | `true` | ## Example Usage ### Basic Usage (Master Channel) ```yaml - name: Set up Flutter uses: rodydavis/shared-actions/setup-flutter@main with: version: master git_token: ${{ secrets.GIT_TOKEN }} ``` ### Specific Version Tag with Caching ```yaml - name: Set up Flutter 3.29.0 uses: rodydavis/shared-actions/setup-flutter@main with: version: '3.29.0' cache: 'true' ```