diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 83af0e42..f345982c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ concurrency: jobs: - build-and-release-android: + build-and-release-android-apks: permissions: contents: write runs-on: ubuntu-latest @@ -36,7 +36,7 @@ jobs: git config --global core.longpaths true flutter pub get - - name: build android + - name: build android apks run: | flutter build apk --release --split-per-abi cd build/app/outputs/flutter-apk @@ -44,12 +44,12 @@ jobs: mv app-armeabi-v7a-release.apk Mangayomi-${{ github.ref_name }}-android-armeabi-v7a.apk mv app-x86_64-release.apk Mangayomi-${{ github.ref_name }}-android-x86_64.apk - - name: upload artifact android + - name: upload artifact android apks uses: actions/upload-artifact@v3 with: path: "build/app/outputs/flutter-apk/Mangayomi-*.apk" - - name: release packages android + - name: release packages android apks uses: ncipollo/release-action@v1 with: artifacts: "build/app/outputs/flutter-apk/Mangayomi-*.apk" @@ -87,12 +87,12 @@ jobs: zip -r app-release.ipa Payload mv app-release.ipa Mangayomi-${{ github.ref_name }}-ios.ipa - - name: upload artifact ios + - name: upload artifact ios ipa uses: actions/upload-artifact@v3 with: path: "build/ios/iphoneos/Mangayomi-*.ipa" - - name: release package ios + - name: release package ios ipa uses: ncipollo/release-action@v1 with: artifacts: "build/ios/iphoneos/Mangayomi-*.ipa" @@ -127,12 +127,12 @@ jobs: brew install create-dmg create-dmg --volname Mangayomi-${{ github.ref_name }}-macos --window-pos 200 120 --window-size 800 450 --icon-size 100 --app-drop-link 600 185 Mangayomi-${{ github.ref_name }}-macos.dmg build/macos/Build/Products/Release/Mangayomi.app - - name: upload artifact macos + - name: upload artifact macos dmg uses: actions/upload-artifact@v3 with: path: "/Users/runner/work/mangayomi/mangayomi/*.dmg" - - name: release package macos + - name: release package macos dmg uses: ncipollo/release-action@v1 with: artifacts: "/Users/runner/work/mangayomi/mangayomi/*.dmg" @@ -169,19 +169,19 @@ jobs: Copy-Item -Filter *.dll -Path windows\* -Destination $DestDir -Force Compress-Archive $DestDir build\windows\Mangayomi-${{ github.ref_name }}-windows.zip - - name: upload artifact windows + - name: upload artifact windows zip uses: actions/upload-artifact@v3 with: path: build\windows\Mangayomi-*.zip - - name: release package windows + - name: release package windows zip uses: ncipollo/release-action@v1 with: artifacts: build\windows\Mangayomi-*.zip allowUpdates: true - build-and-release-linux-zip: + build-and-release-linux_zip: permissions: contents: write runs-on: ubuntu-latest @@ -204,21 +204,71 @@ jobs: - name: flutter pub get run: flutter pub get - - name: Build Linux + - name: build linux run: flutter build linux --verbose - name: Zip uses: thedoctor0/zip-release@master with: type: "zip" - filename: Mangayomi-${{github.ref_name}}-linux.zip + filename: Mangayomi-${{ github.ref_name }}-linux.zip directory: build/linux/x64/release/bundle - - name: upload artifact linux + - name: upload artifact linux zip uses: actions/upload-artifact@v3 with: - path: build/linux/x64/release/bundle/Mangayomi-${{github.ref_name}}-linux.zip - - name: release packages linux + path: build/linux/x64/release/bundle/Mangayomi-*.zip + - name: release packages linux zip uses: ncipollo/release-action@v1 with: - artifacts: build/linux/x64/release/bundle/Mangayomi-${{github.ref_name}}-linux.zip + artifacts: build/linux/x64/release/bundle/Mangayomi-*.zip + allowUpdates: true + + + build-and-release-linux-appimage: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + + - name: checkout branch + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install webkit2gtk-4.1 clang cmake ninja-build pkg-config libgtk-3-dev mpv libmpv-dev dpkg-dev + + - name: setup flutter + uses: subosito/flutter-action@v2.10.0 + with: + flutter-version: 3.13.0 + channel: 'stable' + + - name: flutter pub get + run: flutter pub get + + - name: build linux + run: | + + sudo apt install -y libfuse2 + + curl -JOL https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage + chmod a+x appimagetool-x86_64.AppImage + mv appimagetool-x86_64.AppImage appimagetool + + flutter build linux --release + + mv build/linux/x64/release/bundle/{mangayomi,AppRun} + cp linux/appimage/* build/linux/x64/release/bundle/ + ./appimagetool build/linux/x64/release/bundle/ + mv *.AppImage build/Mangayomi-${{ github.ref_name }}-linux.AppImage + + - name: upload artifact linux appimage + uses: actions/upload-artifact@v3 + with: + path: build/Mangayomi-*.AppImage + - name: Rrelease packages appimage + uses: ncipollo/release-action@v1 + with: + artifacts: build/Mangayomi-*.AppImage allowUpdates: true \ No newline at end of file diff --git a/linux/appimage/AppRun.desktop b/linux/appimage/AppRun.desktop new file mode 100644 index 00000000..b317df31 --- /dev/null +++ b/linux/appimage/AppRun.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Terminal=false +Name=mangayomi +Exec=AppRun %u +Icon=AppRun +Categories=Utility; \ No newline at end of file diff --git a/assets/app_icons/icon-red-48x48.png b/linux/appimage/AppRun.png similarity index 100% rename from assets/app_icons/icon-red-48x48.png rename to linux/appimage/AppRun.png diff --git a/linux/my_application.cc b/linux/my_application.cc index 03df55f1..1ae9414d 100644 --- a/linux/my_application.cc +++ b/linux/my_application.cc @@ -39,7 +39,6 @@ static void my_application_activate(GApplication* application) { #endif if (use_header_bar) { GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_window_set_icon_from_file(GTK_WINDOW(window),"assets/app_icons/icon-red-48x48.png",NULL); gtk_widget_show(GTK_WIDGET(header_bar)); gtk_header_bar_set_title(header_bar, "Mangayomi"); gtk_header_bar_set_show_close_button(header_bar, TRUE);