Skip to content

fix: update workflow to use latest stable Flutter and bump version to… #1

fix: update workflow to use latest stable Flutter and bump version to…

fix: update workflow to use latest stable Flutter and bump version to… #1

Workflow file for this run

name: Release
on:
push:
branches:
- main
paths:
- 'pubspec.yaml'
permissions:
contents: write
jobs:
check-version:
name: Check Version Change
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
version_changed: ${{ steps.check.outputs.changed }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Get current version
id: version
run: |
VERSION=$(grep '^version:' pubspec.yaml | sed 's/version: //')
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Check if version changed
id: check
run: |
git diff HEAD^ HEAD -- pubspec.yaml | grep '^+version:' && echo "changed=true" >> $GITHUB_OUTPUT || echo "changed=false" >> $GITHUB_OUTPUT
release:
name: Create Release
runs-on: ubuntu-latest
needs: check-version
if: needs.check-version.outputs.version_changed == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Create and push tag
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git tag -a v${{ needs.check-version.outputs.version }} -m "Release v${{ needs.check-version.outputs.version }}"
git push origin v${{ needs.check-version.outputs.version }}
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.check-version.outputs.version }}
name: Dester v${{ needs.check-version.outputs.version }}
draft: false
prerelease: false
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-android:
name: Build Android
runs-on: ubuntu-latest
needs: [check-version, release]
if: needs.check-version.outputs.version_changed == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install dependencies
run: flutter pub get
- name: Build APK
run: flutter build apk --release
- name: Rename APK
run: |
mv build/app/outputs/flutter-apk/app-release.apk \
build/app/outputs/flutter-apk/Dester-${{ needs.check-version.outputs.version }}-Android.apk
- name: Upload APK to Release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.check-version.outputs.version }}
files: build/app/outputs/flutter-apk/Dester-${{ needs.check-version.outputs.version }}-Android.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-ios:
name: Build iOS
runs-on: macos-latest
needs: [check-version, release]
if: needs.check-version.outputs.version_changed == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install dependencies
run: flutter pub get
- name: Build iOS IPA (no codesign)
run: flutter build ipa --release --no-codesign
- name: Rename IPA
run: |
mv build/ios/ipa/*.ipa \
build/ios/ipa/Dester-${{ needs.check-version.outputs.version }}-iOS.ipa
- name: Upload IPA to Release
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.check-version.outputs.version }}
files: build/ios/ipa/Dester-${{ needs.check-version.outputs.version }}-iOS.ipa
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-macos:
name: Build macOS
runs-on: macos-latest
needs: [check-version, release]
if: needs.check-version.outputs.version_changed == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install dependencies
run: flutter pub get
- name: Build macOS
run: flutter build macos --release
- name: Create ZIP archive
run: |
cd build/macos/Build/Products/Release
zip -r Dester-${{ needs.check-version.outputs.version }}-macOS.zip dester.app
- name: Upload macOS build
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.check-version.outputs.version }}
files: build/macos/Build/Products/Release/Dester-${{ needs.check-version.outputs.version }}-macOS.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-linux:
name: Build Linux
runs-on: ubuntu-latest
needs: [check-version, release]
if: needs.check-version.outputs.version_changed == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install Flutter dependencies
run: flutter pub get
- name: Build Linux
run: flutter build linux --release
- name: Create archive
run: |
cd build/linux/x64/release/bundle
tar -czf Dester-${{ needs.check-version.outputs.version }}-Linux.tar.gz *
- name: Upload Linux build
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.check-version.outputs.version }}
files: build/linux/x64/release/bundle/Dester-${{ needs.check-version.outputs.version }}-Linux.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-windows:
name: Build Windows
runs-on: windows-latest
needs: [check-version, release]
if: needs.check-version.outputs.version_changed == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install dependencies
run: flutter pub get
- name: Build Windows
run: flutter build windows --release
- name: Create archive
run: |
Compress-Archive -Path build\windows\x64\runner\Release\* -DestinationPath Dester-${{ needs.check-version.outputs.version }}-Windows.zip
- name: Upload Windows build
uses: softprops/action-gh-release@v1
with:
tag_name: v${{ needs.check-version.outputs.version }}
files: Dester-${{ needs.check-version.outputs.version }}-Windows.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}