1
0
Fork 0
mirror of https://github.com/subosito/flutter-action.git synced 2024-08-16 10:19:50 +02:00
flutter/README.md

231 lines
5.2 KiB
Markdown
Raw Normal View History

2019-08-13 12:11:30 +02:00
# flutter-action
2024-03-31 19:30:30 +02:00
Flutter environment for use in GitHub Actions. It works on Linux, Windows, and
macOS.
2019-08-13 12:11:30 +02:00
The following sections show how to configure this action.
## Flutter version
2019-08-13 12:11:30 +02:00
2022-01-06 10:55:43 +01:00
Use specific version and channel:
2019-08-13 12:11:30 +02:00
```yaml
steps:
2024-03-31 19:30:30 +02:00
- 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
```
2021-04-26 16:56:05 +02:00
Use latest release for particular channel:
```yaml
steps:
2024-03-31 19:30:30 +02:00
- 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
```
2021-04-26 16:56:05 +02:00
Use latest release for particular version and/or channel:
2020-06-19 16:13:08 +02:00
```yaml
2021-04-26 16:24:54 +02:00
steps:
2024-03-31 19:30:30 +02:00
- 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
2020-06-19 16:13:08 +02:00
```
2021-04-26 16:56:05 +02:00
Use particular version on any channel:
```yaml
2021-04-26 16:56:05 +02:00
steps:
2024-03-31 19:30:30 +02:00
- 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:
2024-03-31 19:30:30 +02:00
- 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
Build **Android** APK and app bundle:
2019-08-16 14:02:42 +02:00
```yaml
steps:
2024-03-31 19:30:30 +02:00
- 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
2019-08-16 14:02:42 +02:00
```
2024-03-31 19:30:30 +02:00
Build for **iOS** (macOS runners only):
2021-04-26 16:56:05 +02:00
```yaml
jobs:
2024-03-31 19:30:30 +02:00
main:
2021-04-26 16:56:05 +02:00
runs-on: macos-latest
steps:
2024-03-31 19:30:30 +02:00
- 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
2021-04-26 16:56:05 +02:00
```
Build for the **web**:
2019-08-16 14:02:42 +02:00
```yaml
steps:
2024-03-31 19:30:30 +02:00
- 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
2021-04-26 16:56:05 +02:00
```
Build for **Windows**:
2021-04-26 16:56:05 +02:00
```yaml
2022-01-06 10:55:43 +01:00
jobs:
2024-03-31 19:30:30 +02:00
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
2019-08-16 14:02:42 +02:00
```
Build for **Linux** desktop:
```yaml
jobs:
2024-03-31 19:30:30 +02:00
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:
2024-03-31 19:30:30 +02:00
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
2024-03-31 19:30:30 +02:00
Integration with [`actions/cache`](https://github.com/actions/cache):
2022-01-07 05:47:25 +01:00
```yaml
steps:
2024-03-31 19:30:30 +02:00
- 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
2022-01-07 05:47:25 +01:00
```
2022-07-25 14:35:02 +02:00
2024-03-31 19:30:30 +02:00
Note: `cache-key`, `pub-cache-key`, and `cache-path` have support for several
dynamic values:
2022-07-25 14:35:02 +02:00
- `:os:`
- `:channel:`
- `:version:`
2022-07-26 07:08:35 +02:00
- `:arch:`
2022-07-25 14:35:02 +02:00
- `:hash:`
- `:sha256:`
2022-09-08 03:41:22 +02:00
Use outputs from `flutter-action`:
```yaml
steps:
2024-03-31 19:30:30 +02:00
- 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
2022-09-08 03:41:22 +02:00
```