1
0
Fork 0
mirror of https://github.com/subosito/flutter-action.git synced 2024-08-16 10:19:50 +02:00
Find a file
Bartek Pacia d3969fb775
Merge pull request #284 from niccokunzmann/patch-1
Restructure Documentation
2024-03-31 18:28:15 +02:00
.github chore: Add m1 chip macos 2024-03-18 22:40:06 +09:00
test update test fixtures 2023-03-21 20:55:50 +07:00
action.yml fix: specify pub cache path (#280) 2024-03-20 11:20:53 +07:00
LICENSE initial commit 2019-08-13 17:11:30 +07:00
README.md Structure Documentation 2024-03-31 17:24:22 +01:00
setup.sh fix: specify pub cache path (#280) 2024-03-20 11:20:53 +07:00

flutter-action

Flutter environment for use in GitHub Actions. It works on Linux, Windows, and macOS.

The following sections show how to configure this action.

Flutter version

Use specific version and channel:

steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
  with:
    flutter-version: '3.16.9'
    channel: 'stable'
- run: flutter --version

Use latest release for particular channel:

steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
  with:
    channel: 'stable' # or: 'beta', 'dev', 'master' (or 'main')
- run: flutter --version

Use latest release for particular version and/or channel:

steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
  with:
    flutter-version: '1.22.x'
    channel: 'dev'
- run: flutter --version

Use particular version on any channel:

steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
  with:
    flutter-version: '3.x'
    channel: 'any'
- run: flutter --version

Use particular git reference on master channel:

steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
  with:
    flutter-version: '5b12b74' # tag, commit or branch
    channel: 'master'
- run: flutter --version

Build Target

Build Android APK and app bundle:

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

Build for iOS (macOS only):

jobs:
  build:
    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

Build for the web:

steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
  with:
    channel: 'stable'
- run: flutter pub get
- run: flutter test
- run: flutter build web

Build for Windows:

jobs:
 build:
   runs-on: windows-latest
   steps:
     - uses: actions/checkout@v4
     - uses: subosito/flutter-action@v2
       with:
         channel: 'stable'
     - run: flutter build windows

Build for Linux desktop:

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

Build for macOS desktop:

jobs:
 build:
   runs-on: macos-latest
   steps:
     - uses: actions/checkout@v4
     - uses: subosito/flutter-action@v2
       with:
         channel: 'stable'
     - run: flutter build macos

Caching

Integration with actions/cache:

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

Note: cache-key, pub-cache-key, and cache-path has support for several dynamic values:

  • :os:
  • :channel:
  • :version:
  • :arch:
  • :hash:
  • :sha256:

Use outputs from flutter-action:

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