v0.2.5 #56
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: Build & Release | |
on: | |
push: | |
tags: | |
- v* | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref_name }} | |
cancel-in-progress: true | |
jobs: | |
build-and-release-android-apks: | |
permissions: | |
contents: write | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout branch | |
uses: actions/checkout@v3 | |
- name: setup flutter | |
uses: subosito/flutter-action@v2.12.0 | |
with: | |
channel: 'stable' | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Setup Java toolchain (Only Android target) | |
uses: actions/setup-java@v3 | |
with: | |
distribution: "zulu" | |
java-version: "11" | |
- name: Install the CLI tool | |
run: cargo install 'flutter_rust_bridge_codegen@^2.0.0-dev.0' | |
- name: flutter_rust_bridge_codegen | |
run: flutter_rust_bridge_codegen generate | |
- name: Setup Android keystore | |
run: | | |
echo "${{ secrets.SIGNING_KEY_STORE_BASE64 }}" | base64 -di > android/app/upload-keystore.jks | |
echo "${{ secrets.SIGNING_KEY_PROPERTIES }}" > android/key.properties | |
- name: flutter pub get | |
run: flutter pub get | |
- name: build android apks | |
run: | | |
flutter build apk --release --split-per-abi --dart-define=cronetHttpNoPlay=true | |
cd build/app/outputs/flutter-apk | |
mv app-arm64-v8a-release.apk Mangayomi-${{ github.ref_name }}-android-arm64-v8a.apk | |
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 apks | |
uses: actions/upload-artifact@v3 | |
with: | |
path: "build/app/outputs/flutter-apk/Mangayomi-*.apk" | |
- name: release packages android apks | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "build/app/outputs/flutter-apk/Mangayomi-*.apk" | |
allowUpdates: true | |
build-and-release-ios-ipa: | |
permissions: | |
contents: write | |
runs-on: macos-latest | |
steps: | |
# Checkout branch | |
- name: checkout branch | |
uses: actions/checkout@v3 | |
- name: setup flutter | |
uses: subosito/flutter-action@v2.12.0 | |
with: | |
channel: 'stable' | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install the CLI tool | |
run: cargo install 'flutter_rust_bridge_codegen@^2.0.0-dev.0' | |
- name: flutter_rust_bridge_codegen | |
run: flutter_rust_bridge_codegen generate | |
- name: flutter pub get | |
run: flutter pub get | |
- name: build ios | |
run: | | |
flutter build ios --release --no-codesign | |
cd build/ios/iphoneos | |
mkdir Payload | |
cd Payload | |
ln -s ../Runner.app | |
cd .. | |
zip -r app-release.ipa Payload | |
mv app-release.ipa Mangayomi-${{ github.ref_name }}-ios.ipa | |
- name: upload artifact ios ipa | |
uses: actions/upload-artifact@v3 | |
with: | |
path: "build/ios/iphoneos/Mangayomi-*.ipa" | |
- name: release package ios ipa | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "build/ios/iphoneos/Mangayomi-*.ipa" | |
allowUpdates: true | |
build-and-release-macos-dmg: | |
permissions: | |
contents: write | |
runs-on: macos-latest | |
steps: | |
- name: checkout branch | |
uses: actions/checkout@v3 | |
- name: setup flutter | |
uses: subosito/flutter-action@v2.12.0 | |
with: | |
channel: 'stable' | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install the CLI tool | |
run: cargo install 'flutter_rust_bridge_codegen@^2.0.0-dev.0' | |
- name: flutter_rust_bridge_codegen | |
run: flutter_rust_bridge_codegen generate | |
- name: flutter pub get | |
run: flutter pub get | |
- name: build macos | |
run: | | |
cd macos | |
pod update | |
cd .. | |
flutter build macos --release | |
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 dmg | |
uses: actions/upload-artifact@v3 | |
with: | |
path: "/Users/runner/work/mangayomi/mangayomi/*.dmg" | |
- name: release package macos dmg | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "/Users/runner/work/mangayomi/mangayomi/*.dmg" | |
allowUpdates: true | |
# build-and-release-windows-zip: | |
# permissions: | |
# contents: write | |
# runs-on: windows-latest | |
# steps: | |
# - name: checkout branch | |
# uses: actions/checkout@v3 | |
# - name: setup flutter | |
# uses: subosito/flutter-action@v2.12.0 | |
# with: | |
# channel: 'stable' | |
# - name: Setup Rust toolchain | |
# uses: dtolnay/rust-toolchain@stable | |
# - name: Install the CLI tool | |
# run: cargo install 'flutter_rust_bridge_codegen@^2.0.0-dev.0' | |
# - name: flutter_rust_bridge_codegen | |
# run: flutter_rust_bridge_codegen generate | |
# - name: flutter pub get | |
# run: flutter pub get | |
# - name: build windows | |
# run: | | |
# flutter build windows --release | |
# $DestDir = "build\windows\Mangayomi-${{ github.ref_name }}-windows" | |
# $SrcDir = "build\windows\runner\Release" | |
# New-Item -Path $DestDir -ItemType Directory | |
# Copy-Item $SrcDir\* -Recurse $DestDir | |
# Copy-Item -Filter *.dll -Path windows\* -Destination $DestDir -Force | |
# Compress-Archive $DestDir build\windows\Mangayomi-${{ github.ref_name }}-windows.zip | |
# - name: upload artifact windows zip | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# path: build\windows\Mangayomi-*.zip | |
# - name: release package windows zip | |
# uses: ncipollo/release-action@v1 | |
# with: | |
# artifacts: build\windows\Mangayomi-*.zip | |
# allowUpdates: true | |
build-and-release-linux-zip: | |
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.12.0 | |
with: | |
channel: 'stable' | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install the CLI tool | |
run: cargo install 'flutter_rust_bridge_codegen@^2.0.0-dev.0' | |
- name: flutter_rust_bridge_codegen | |
run: flutter_rust_bridge_codegen generate | |
- name: flutter pub get | |
run: flutter pub get | |
- 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 | |
directory: build/linux/x64/release/bundle | |
- name: upload artifact linux zip | |
uses: actions/upload-artifact@v3 | |
with: | |
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-*.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.12.0 | |
with: | |
channel: 'stable' | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install the CLI tool | |
run: cargo install 'flutter_rust_bridge_codegen@^2.0.0-dev.0' | |
- name: flutter_rust_bridge_codegen | |
run: flutter_rust_bridge_codegen generate | |
- 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 |