fix: update workflow to use latest stable Flutter and bump version to… #1
This file contains hidden or 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: 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 }} | |