v0.0.2 update ci #21
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Flutter Build and Release | |
on: | |
push: | |
tags: | |
- "v*.*.*" | |
jobs: | |
build-and-release-on-ubuntu: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
channel: "stable" | |
cache: true | |
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 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y ninja-build libgtk-3-dev | |
# - name: "Install dependencies" | |
# run: | | |
# sudo apt-get update -y | |
# sudo apt-get install -y cmake ninja-build build-essential pkg-config curl file git unzip xz-utils zip libgtk-3-dev | |
- name: Flutter Pub Get | |
run: flutter pub get | |
- name: Build Android APK | |
run: flutter build apk | |
- name: Build web app | |
run: flutter build web | |
- name: Build Linux app | |
run: flutter build linux | |
# - name: Build AppImage unsing appimage-builder | |
# uses: docker://appimagecrafters/appimage-builder:0.8.5 | |
# with: | |
# entrypoint: appimage-builder | |
# args: --recipe ./AppImageBuilder.yml --skip-test | |
- name: pack into tar.gz or zip | |
run: | | |
tar -zcvf web.tar.gz build/web | |
tar -zcvf linux.tar.gz build/linux/x64/release/bundle | |
tar -zcvf android-apk.tar.gz build/app/outputs/apk/release/app-release.apk | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-artifacts-ubuntu | |
path: | | |
web.tar.gz | |
linux.tar.gz | |
android-apk.tar.gz | |
build-and-release-on-macos: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
channel: "stable" | |
cache: true | |
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 | |
- name: Install dependencies | |
run: flutter pub get | |
- name: Build iOS app | |
run: flutter build ios --release --no-codesign | |
- name: Build macOS app | |
run: flutter build macos | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-artifacts-macos | |
path: | | |
build/ios/iphoneos/Runner.app | |
build/macos/Build/Products/Release/Runner.app | |
build-and-release-on-windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: subosito/flutter-action@v2 | |
with: | |
channel: "stable" | |
cache: true | |
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 build windows | |
- name: Archive Release | |
uses: thedoctor0/zip-release@master | |
with: | |
type: "zip" | |
filename: windows.zip | |
directory: build/windows/x64/runner/Release | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-artifacts-windows | |
path: | | |
build/windows/x64/runner/Release/windows.zip | |
release: | |
needs: | |
[ | |
build-and-release-on-ubuntu, | |
build-and-release-on-windows, | |
build-and-release-on-macos, | |
] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
# - name: pack into tar.gz or zip | |
# run: | | |
# tar -zcvf web.tar.gz web | |
# tar -zcvf linux.tar.gz linux | |
# tar -zcvf android.tar.gz app | |
# tar -zcvf windows.tar.gz Release | |
- name: Create release | |
uses: softprops/action-gh-release@v1 | |
# if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
*.tar.gz |