diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 00d747c..0f9809a 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -1,4 +1,5 @@ name: Main workflow + on: push: branches: @@ -12,136 +13,152 @@ on: jobs: lint_shellcheck: runs-on: ubuntu-latest + steps: - - uses: actions/checkout@v4 - - uses: ludeeus/action-shellcheck@master + - name: Clone repository + uses: actions/checkout@v4 + - name: Run shellcheck + uses: ludeeus/action-shellcheck@master + test_channel: runs-on: ${{ matrix.operating-system }} + strategy: matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest, macos-13, macos-14] + operating-system: + [ubuntu-latest, windows-latest, macos-latest, macos-13, macos-14] channel: [stable, beta, master] include: - operating-system: ubuntu-latest channel: main - steps: - - uses: actions/checkout@v4 - - id: flutter-action - uses: ./ - with: - channel: ${{ matrix.channel }} - - name: Echo outputs - run: | - echo RUNNER-OS=${{ runner.os }} - echo RUNNER-ARCH=${{ runner.arch }} - echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} - echo CACHE-KEY=${{ steps.flutter-action.outputs.CACHE-KEY }} - echo CHANNEL=${{ steps.flutter-action.outputs.CHANNEL }} - echo VERSION=${{ steps.flutter-action.outputs.VERSION }} - echo ARCHITECTURE=${{ steps.flutter-action.outputs.ARCHITECTURE }} - shell: bash - - run: dart --version - shell: bash - - run: flutter --version - shell: bash + steps: + - name: Clone repository + uses: actions/checkout@v4 + - id: flutter-action + uses: ./ + with: + channel: ${{ matrix.channel }} + - name: Echo outputs + run: | + echo RUNNER-OS=${{ runner.os }} + echo RUNNER-ARCH=${{ runner.arch }} + + echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} + echo CACHE-KEY=${{ steps.flutter-action.outputs.CACHE-KEY }} + echo CHANNEL=${{ steps.flutter-action.outputs.CHANNEL }} + echo VERSION=${{ steps.flutter-action.outputs.VERSION }} + echo ARCHITECTURE=${{ steps.flutter-action.outputs.ARCHITECTURE }} + shell: bash + - run: dart --version + shell: bash + - run: flutter --version + shell: bash + test_cache: runs-on: ${{ matrix.operating-system }} + strategy: matrix: - operating-system: [ubuntu-latest, windows-latest, macos-latest, macos-13, macos-14] + operating-system: + [ubuntu-latest, windows-latest, macos-latest, macos-13, macos-14] + steps: - - uses: actions/checkout@v4 - - uses: ./ - with: - channel: stable - flutter-version: '3.10.6' - cache: true - - run: dart --version - shell: bash - - run: flutter --version - shell: bash + - name: Clone repository + uses: actions/checkout@v4 + - uses: ./ + with: + channel: stable + flutter-version: "3.10.6" + cache: true + - run: dart --version + shell: bash + - run: flutter --version + shell: bash + test_print_output: runs-on: macos-latest + steps: - - uses: actions/checkout@v4 - - run: ./setup.sh -t -p | grep 'stable' - shell: bash - - run: ./setup.sh -t -p | grep '3.7.7' - shell: bash - - run: ./setup.sh -t -p | grep 'x64' - shell: bash - - run: ./setup.sh -t -p stable | grep 'stable' - shell: bash - - run: ./setup.sh -t -p beta | grep 'beta' - shell: bash - - run: ./setup.sh -t -p beta | grep '3.9.0-0.1.pre' - shell: bash - - run: ./setup.sh -t -p -n 3.3.10 stable | grep '3.3.10' - shell: bash - - run: ./setup.sh -t -p -n 3.3.1 stable | grep '3.3.1' - shell: bash - - run: ./setup.sh -t -p -n 2 stable | grep '2.10.5' - shell: bash - - run: ./setup.sh -t -p -n 2 beta | grep '2.13.0-0.4.pre' - shell: bash - - run: ./setup.sh -t -p -n 2 any | grep 'beta' - shell: bash - - run: ./setup.sh -t -p -n 2 any | grep '2.13.0-0.4.pre' - shell: bash - - run: ./setup.sh -t -p -n 3 any | grep 'beta' - shell: bash - - run: ./setup.sh -t -p -n 3 any | grep '3.9.0-0.1.pre' - shell: bash - - run: ./setup.sh -t -p -n 3 -a arm64 any | grep 'arm64' - shell: bash - - run: ./setup.sh -t -p -n any -a arm64 stable | grep 'stable' - shell: bash - - run: ./setup.sh -t -p -n any -a arm64 stable | grep '3.7.7' - shell: bash - - run: ./setup.sh -t -p -n any -a arm64 stable | grep 'arm64' - shell: bash - - run: ./setup.sh -t -p -n 1 stable | grep '1.22.6' - shell: bash - - run: ./setup.sh -t -p -n 0 any | grep 'beta' - shell: bash - - run: ./setup.sh -t -p -n 0 any | grep '0.11.13' - shell: bash - - run: ./setup.sh -t -p | grep 'flutter-macos-stable-3.7.7-x64-2ad6cd72c040113b47ee9055e722606a490ef0da' - shell: bash - - run: ./setup.sh -t -p stable | grep 'flutter-macos-stable-3.7.7-x64-2ad6cd72c040113b47ee9055e722606a490ef0da' - shell: bash - - run: ./setup.sh -t -p beta | grep 'flutter-macos-beta-3.9.0-0.1.pre-x64-f732038a8cf4562ce38a1d7debb30209ae3da896' - shell: bash - - run: ./setup.sh -t -p dev | grep 'flutter-macos-dev-2.11.0-0.1.pre-x64-b101bfe32f634566e7cb2791a9efe19cf8828b15' - shell: bash - - run: ./setup.sh -t -p master | grep 'flutter-macos-master-any-x64-master' - shell: bash - - run: ./setup.sh -t -p -n 5b12b74 master | grep 'flutter-macos-master-5b12b74-x64-master' - shell: bash - - run: ./setup.sh -t -p -n 3.12.0-12.0.pre master | grep 'flutter-macos-master-3.12.0-12.0.pre-x64-master' - shell: bash - - run: ./setup.sh -t -p -n stable master | grep 'flutter-macos-master-stable-x64-master' - shell: bash - - run: ./setup.sh -t -p -n 2 any | grep 'flutter-macos-beta-2.13.0-0.4.pre-x64-25caf1461b8f643092a9f6f5b224453b5c057d10' - shell: bash - - run: ./setup.sh -t -p -n 1 any | grep 'flutter-macos-beta-1.26.0-17.8.pre-x64-044f2cf5607a26f8818dab0f766400e85c52bdff' - shell: bash - - run: ./setup.sh -t -p -n 0 any | grep 'flutter-macos-beta-0.11.13-x64-58c8489fcdb4e4ef6c010117584c9b23d15221aa' - shell: bash - - run: ./setup.sh -t -p | grep '/Users/runner/work/_temp/flutter/stable-3.7.7-x64' - shell: bash - - run: ./setup.sh -t -p stable | grep '/Users/runner/work/_temp/flutter/stable-3.7.7-x64' - shell: bash - - run: ./setup.sh -t -p beta | grep '/Users/runner/work/_temp/flutter/beta-3.9.0-0.1.pre-x64' - shell: bash - - run: ./setup.sh -t -p dev | grep '/Users/runner/work/_temp/flutter/dev-2.11.0-0.1.pre-x64' - shell: bash - - run: ./setup.sh -t -p master | grep '/Users/runner/work/_temp/flutter/master-any-x64' - shell: bash - - run: ./setup.sh -t -p -k 'custom-:channel:-:version:-:hash:' | grep 'custom-stable-3.7.7-2ad6cd72c040113b47ee9055e722606a490ef0da' - shell: bash - - run: ./setup.sh -t -p -k 'custom-:channel:-:version:-:sha256:' | grep 'custom-stable-3.7.7-78957b52f023a0d811add27eddc59b1a59d27d2ada5df123f39d0315708fb2d5' - shell: bash - - run: ./setup.sh -t -p -c '/tmp/flutter/:channel:-:version:-:hash:' | grep '/tmp/flutter/stable-3.7.7-2ad6cd72c040113b47ee9055e722606a490ef0da' - shell: bash + - name: Clone repository + uses: actions/checkout@v4 + - run: ./setup.sh -t -p | grep 'stable' + shell: bash + - run: ./setup.sh -t -p | grep '3.7.7' + shell: bash + - run: ./setup.sh -t -p | grep 'x64' + shell: bash + - run: ./setup.sh -t -p stable | grep 'stable' + shell: bash + - run: ./setup.sh -t -p beta | grep 'beta' + shell: bash + - run: ./setup.sh -t -p beta | grep '3.9.0-0.1.pre' + shell: bash + - run: ./setup.sh -t -p -n 3.3.10 stable | grep '3.3.10' + shell: bash + - run: ./setup.sh -t -p -n 3.3.1 stable | grep '3.3.1' + shell: bash + - run: ./setup.sh -t -p -n 2 stable | grep '2.10.5' + shell: bash + - run: ./setup.sh -t -p -n 2 beta | grep '2.13.0-0.4.pre' + shell: bash + - run: ./setup.sh -t -p -n 2 any | grep 'beta' + shell: bash + - run: ./setup.sh -t -p -n 2 any | grep '2.13.0-0.4.pre' + shell: bash + - run: ./setup.sh -t -p -n 3 any | grep 'beta' + shell: bash + - run: ./setup.sh -t -p -n 3 any | grep '3.9.0-0.1.pre' + shell: bash + - run: ./setup.sh -t -p -n 3 -a arm64 any | grep 'arm64' + shell: bash + - run: ./setup.sh -t -p -n any -a arm64 stable | grep 'stable' + shell: bash + - run: ./setup.sh -t -p -n any -a arm64 stable | grep '3.7.7' + shell: bash + - run: ./setup.sh -t -p -n any -a arm64 stable | grep 'arm64' + shell: bash + - run: ./setup.sh -t -p -n 1 stable | grep '1.22.6' + shell: bash + - run: ./setup.sh -t -p -n 0 any | grep 'beta' + shell: bash + - run: ./setup.sh -t -p -n 0 any | grep '0.11.13' + shell: bash + - run: ./setup.sh -t -p | grep 'flutter-macos-stable-3.7.7-x64-2ad6cd72c040113b47ee9055e722606a490ef0da' + shell: bash + - run: ./setup.sh -t -p stable | grep 'flutter-macos-stable-3.7.7-x64-2ad6cd72c040113b47ee9055e722606a490ef0da' + shell: bash + - run: ./setup.sh -t -p beta | grep 'flutter-macos-beta-3.9.0-0.1.pre-x64-f732038a8cf4562ce38a1d7debb30209ae3da896' + shell: bash + - run: ./setup.sh -t -p dev | grep 'flutter-macos-dev-2.11.0-0.1.pre-x64-b101bfe32f634566e7cb2791a9efe19cf8828b15' + shell: bash + - run: ./setup.sh -t -p master | grep 'flutter-macos-master-any-x64-master' + shell: bash + - run: ./setup.sh -t -p -n 5b12b74 master | grep 'flutter-macos-master-5b12b74-x64-master' + shell: bash + - run: ./setup.sh -t -p -n 3.12.0-12.0.pre master | grep 'flutter-macos-master-3.12.0-12.0.pre-x64-master' + shell: bash + - run: ./setup.sh -t -p -n stable master | grep 'flutter-macos-master-stable-x64-master' + shell: bash + - run: ./setup.sh -t -p -n 2 any | grep 'flutter-macos-beta-2.13.0-0.4.pre-x64-25caf1461b8f643092a9f6f5b224453b5c057d10' + shell: bash + - run: ./setup.sh -t -p -n 1 any | grep 'flutter-macos-beta-1.26.0-17.8.pre-x64-044f2cf5607a26f8818dab0f766400e85c52bdff' + shell: bash + - run: ./setup.sh -t -p -n 0 any | grep 'flutter-macos-beta-0.11.13-x64-58c8489fcdb4e4ef6c010117584c9b23d15221aa' + shell: bash + - run: ./setup.sh -t -p | grep '/Users/runner/work/_temp/flutter/stable-3.7.7-x64' + shell: bash + - run: ./setup.sh -t -p stable | grep '/Users/runner/work/_temp/flutter/stable-3.7.7-x64' + shell: bash + - run: ./setup.sh -t -p beta | grep '/Users/runner/work/_temp/flutter/beta-3.9.0-0.1.pre-x64' + shell: bash + - run: ./setup.sh -t -p dev | grep '/Users/runner/work/_temp/flutter/dev-2.11.0-0.1.pre-x64' + shell: bash + - run: ./setup.sh -t -p master | grep '/Users/runner/work/_temp/flutter/master-any-x64' + shell: bash + - run: ./setup.sh -t -p -k 'custom-:channel:-:version:-:hash:' | grep 'custom-stable-3.7.7-2ad6cd72c040113b47ee9055e722606a490ef0da' + shell: bash + - run: ./setup.sh -t -p -k 'custom-:channel:-:version:-:sha256:' | grep 'custom-stable-3.7.7-78957b52f023a0d811add27eddc59b1a59d27d2ada5df123f39d0315708fb2d5' + shell: bash + - run: ./setup.sh -t -p -c '/tmp/flutter/:channel:-:version:-:hash:' | grep '/tmp/flutter/stable-3.7.7-2ad6cd72c040113b47ee9055e722606a490ef0da' + shell: bash diff --git a/README.md b/README.md index 686f09d..0b4afaf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # flutter-action -Flutter environment for use in GitHub Actions. It works on Linux, Windows, and macOS. +Flutter environment for use in GitHub Actions. It works on Linux, Windows, and +macOS. The following sections show how to configure this action. @@ -10,59 +11,67 @@ Use specific version and channel: ```yaml steps: -- uses: actions/checkout@v4 -- uses: subosito/flutter-action@v2 - with: - flutter-version: '3.16.9' - channel: 'stable' -- run: flutter --version + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: 3.19.0 + channel: stable + - run: flutter --version ``` Use latest release for particular channel: ```yaml steps: -- uses: actions/checkout@v4 -- uses: subosito/flutter-action@v2 - with: - channel: 'stable' # or: 'beta', 'dev', 'master' (or 'main') -- run: flutter --version + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable # or: beta, master (or main) + - run: flutter --version ``` Use latest release for particular version and/or channel: ```yaml steps: -- uses: actions/checkout@v4 -- uses: subosito/flutter-action@v2 - with: - flutter-version: '1.22.x' - channel: 'dev' -- run: flutter --version + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: 1.22.x + channel: dev + - run: flutter --version ``` Use particular version on any channel: ```yaml steps: -- uses: actions/checkout@v4 -- uses: subosito/flutter-action@v2 - with: - flutter-version: '3.x' - channel: 'any' -- run: flutter --version + - uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: "3.x" + channel: any + - run: flutter --version ``` Use particular git reference on master channel: ```yaml steps: -- uses: actions/checkout@v4 -- uses: subosito/flutter-action@v2 - with: - flutter-version: '5b12b74' # tag, commit or branch - channel: 'master' -- run: flutter --version + - uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: 5b12b74 # tag, commit or branch + channel: master + - run: flutter --version ``` ## Build Target @@ -71,110 +80,125 @@ Build **Android** APK and app bundle: ```yaml steps: -- uses: actions/checkout@v4 -- uses: subosito/flutter-action@v2 - with: - flutter-version: '3.16.9' -- run: flutter pub get -- run: flutter test -- run: flutter build apk -- run: flutter build appbundle + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: 3.19.0 + - run: flutter pub get + - run: flutter test + - run: flutter build apk + - run: flutter build appbundle ``` -Build for **iOS** (macOS only): +Build for **iOS** (macOS runners only): ```yaml jobs: - build: + main: runs-on: macos-latest steps: - - uses: actions/checkout@v4 - - uses: subosito/flutter-action@v2 - with: - channel: 'stable' - - run: flutter pub get - - run: flutter test - - run: flutter build ios --release --no-codesign + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + - run: flutter pub get + - run: flutter test + - run: flutter build ios --release --no-codesign ``` Build for the **web**: ```yaml steps: -- uses: actions/checkout@v4 -- uses: subosito/flutter-action@v2 - with: - channel: 'stable' -- run: flutter pub get -- run: flutter test -- run: flutter build web + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: "stable" + - run: flutter pub get + - run: flutter test + - run: flutter build web ``` Build for **Windows**: ```yaml jobs: - build: - runs-on: windows-latest - steps: - - uses: actions/checkout@v4 - - uses: subosito/flutter-action@v2 - with: - channel: 'stable' - - run: flutter build windows + main: + runs-on: windows-latest + steps: + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + - run: flutter build windows ``` Build for **Linux** desktop: ```yaml jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: subosito/flutter-action@v2 - with: - channel: 'stable' - - run: | - sudo apt-get update -y - sudo apt-get install -y ninja-build libgtk-3-dev - - run: flutter build linux + main: + runs-on: ubuntu-latest + steps: + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + - run: | + sudo apt-get update -y + sudo apt-get install -y ninja-build libgtk-3-dev + - run: flutter build linux ``` Build for **macOS** desktop: ```yaml jobs: - build: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - uses: subosito/flutter-action@v2 - with: - channel: 'stable' - - run: flutter build macos + main: + runs-on: macos-latest + steps: + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: "stable" + - run: flutter build macos ``` ## Caching -Integration with `actions/cache`: +Integration with [`actions/cache`](https://github.com/actions/cache): ```yaml steps: -- uses: actions/checkout@v4 -- uses: subosito/flutter-action@v2 - with: - channel: 'stable' - cache: true - # optional parameters follow - cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' # optional, change this to force refresh cache - cache-path: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:' # optional, change this to specify the cache path - pub-cache-key: 'flutter-pub:os:-:channel:-:version:-:arch:-:hash:' # optional, change this to force refresh cache of dart pub get dependencies - pub-cache-path: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:' # optional, change this to specify the cache path -- run: flutter --version + - name: Clone repository + uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + # optional parameters follow + cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:" # optional, change this to force refresh cache + cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" # optional, change this to specify the cache path + pub-cache-key: "flutter-pub:os:-:channel:-:version:-:arch:-:hash:" # optional, change this to force refresh cache of dart pub get dependencies + pub-cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" # optional, change this to specify the cache path + - run: flutter --version ``` -Note: `cache-key`, `pub-cache-key`, and `cache-path` has support for several dynamic values: +Note: `cache-key`, `pub-cache-key`, and `cache-path` have support for several +dynamic values: - `:os:` - `:channel:` @@ -187,18 +211,20 @@ Use outputs from `flutter-action`: ```yaml steps: -- uses: actions/checkout@v4 -- id: flutter-action - uses: subosito/flutter-action@v2 - with: - channel: 'stable' -- run: | - echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} - echo CACHE-KEY=${{ steps.flutter-action.outputs.CACHE-KEY }} - echo CHANNEL=${{ steps.flutter-action.outputs.CHANNEL }} - echo VERSION=${{ steps.flutter-action.outputs.VERSION }} - echo ARCHITECTURE=${{ steps.flutter-action.outputs.ARCHITECTURE }} - echo PUB-CACHE-PATH=${{ steps.flutter-action.outputs.PUB-CACHE-PATH }} - echo PUB-CACHE-KEY=${{ steps.flutter-action.outputs.PUB-CACHE-KEY }} - shell: bash + - name: Clone repository + - uses: actions/checkout@v4 + - name: Set up Flutter + uses: subosito/flutter-action@v2 + id: flutter-action + with: + channel: stable + - run: | + echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} + echo CACHE-KEY=${{ steps.flutter-action.outputs.CACHE-KEY }} + echo CHANNEL=${{ steps.flutter-action.outputs.CHANNEL }} + echo VERSION=${{ steps.flutter-action.outputs.VERSION }} + echo ARCHITECTURE=${{ steps.flutter-action.outputs.ARCHITECTURE }} + echo PUB-CACHE-PATH=${{ steps.flutter-action.outputs.PUB-CACHE-PATH }} + echo PUB-CACHE-KEY=${{ steps.flutter-action.outputs.PUB-CACHE-KEY }} + shell: bash ``` diff --git a/action.yml b/action.yml index de9efa7..0b09fe1 100644 --- a/action.yml +++ b/action.yml @@ -1,73 +1,84 @@ -name: 'Flutter action' -description: 'Setup your runner with Flutter environment' -author: 'Alif Rachmawadi' +name: Set up Flutter +description: Setup your runner with Flutter environment +author: Alif Rachmawadi branding: - icon: 'maximize' - color: 'blue' + icon: maximize + color: blue inputs: flutter-version: - description: 'The Flutter version to make available on the path' + description: The Flutter version to make available on the path required: false - default: 'any' + default: any channel: - description: 'The Flutter build release channel' + description: The Flutter build release channel required: false - default: 'stable' + default: stable cache: - description: 'Cache the Flutter SDK' + description: Cache the Flutter SDK required: false - default: 'false' + default: "false" cache-key: - description: 'Identifier for the Flutter SDK cache' + description: Identifier for the Flutter SDK cache required: false - default: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' + default: "flutter-:os:-:channel:-:version:-:arch:-:hash:" pub-cache-key: - description: 'Identifier for the Dart .pub-cache cache' + description: Identifier for the Dart .pub-cache cache required: false - default: 'flutter-pub:os:-:channel:-:version:-:arch:-:hash:' + default: "flutter-pub:os:-:channel:-:version:-:arch:-:hash:" cache-path: - description: 'Flutter SDK cache path' + description: Flutter SDK cache path required: false - default: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:' + default: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" pub-cache-path: - description: 'Flutter pub cache path' + description: Flutter pub cache path required: false - default: 'default' + default: default architecture: - description: 'The architecture of Flutter SDK executable (x64 or arm64)' + description: The architecture of Flutter SDK executable (x64 or arm64) required: false - default: '${{ runner.arch }}' + default: "${{ runner.arch }}" outputs: - CACHE-PATH: - value: '${{ steps.flutter-action.outputs.CACHE-PATH }}' CACHE-KEY: - value: '${{ steps.flutter-action.outputs.CACHE-KEY }}' + value: "${{ steps.flutter-action.outputs.CACHE-KEY }}" + description: Key used to cache the Flutter SDK + CACHE-PATH: + value: "${{ steps.flutter-action.outputs.CACHE-PATH }}" + description: Path to Flutter SDK CHANNEL: - value: '${{ steps.flutter-action.outputs.CHANNEL }}' + value: "${{ steps.flutter-action.outputs.CHANNEL }}" + description: The selected Flutter release channel VERSION: - value: '${{ steps.flutter-action.outputs.VERSION }}' + value: "${{ steps.flutter-action.outputs.VERSION }}" + description: The selected Flutter version ARCHITECTURE: - value: '${{ steps.flutter-action.outputs.ARCHITECTURE }}' + value: "${{ steps.flutter-action.outputs.ARCHITECTURE }}" + description: The selected Flutter CPU architecture PUB-CACHE-KEY: - value: '${{ steps.flutter-action.outputs.PUB-CACHE-KEY }}' + value: "${{ steps.flutter-action.outputs.PUB-CACHE-KEY }}" + description: Key used to cache the pub dependencies PUB-CACHE-PATH: - value: '${{ steps.flutter-action.outputs.PUB-CACHE-PATH }}' + value: "${{ steps.flutter-action.outputs.PUB-CACHE-PATH }}" + description: Path to pub cache runs: - using: 'composite' + using: composite steps: - - run: chmod +x $GITHUB_ACTION_PATH/setup.sh + - name: Make setup script executable + run: chmod +x "$GITHUB_ACTION_PATH/setup.sh" shell: bash - - id: flutter-action + - name: Print configuration + id: flutter-action run: $GITHUB_ACTION_PATH/setup.sh -p -c '${{ inputs.cache-path }}' -k '${{ inputs.cache-key }}' -d '${{ inputs.pub-cache-path }}' -l '${{ inputs.pub-cache-key }}' -n '${{ inputs.flutter-version }}' -a '${{ inputs.architecture }}' ${{ inputs.channel }} shell: bash - - if: ${{ inputs.cache == 'true' }} + - name: Cache Flutter + if: ${{ inputs.cache == 'true' }} uses: actions/cache@v4 with: path: ${{ steps.flutter-action.outputs.CACHE-PATH }} key: ${{ steps.flutter-action.outputs.CACHE-KEY }} restore-keys: | ${{ steps.flutter-action.outputs.CACHE-KEY }} - - if: ${{ inputs.cache == 'true' }} + - name: Cache pub dependencies + if: ${{ inputs.cache == 'true' }} uses: actions/cache@v4 with: path: ${{ steps.flutter-action.outputs.PUB-CACHE-PATH }}