spotube/.github/workflows/flutter-build.yml
2022-06-15 19:05:33 +06:00

90 lines
3.3 KiB
YAML

name: Flutter Cross Build
on:
push:
branches:
- build
workflow_dispatch:
jobs:
build_ubuntu:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2.2.0
with:
cache: true
- run: |
sudo apt-get update -y
sudo apt-get install -y tar clang cmake ninja-build pkg-config libgtk-3-dev make libwebkit2gtk-4.0-dev keybinder-3.0 python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace fuse
- run: flutter config --enable-linux-desktop
- run: flutter pub get
- run: dart bin/create-secrets.dart '${{ secrets.LYRICS_SECRET }}' '${{ secrets.SPOTIFY_SECRET }}'
- run: flutter clean
- run: flutter build linux
- run: make deb
- run: make tar
- run: wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool
- run: chmod +x /usr/local/bin/appimagetool
- run: pip3 install appimage-builder
- run: make appimage
- uses: actions/upload-artifact@v2
with:
name: Spotube-Linux-Bundle
path: |
build/Spotube-linux-x86_64.deb
build/Spotube-linux-x86_64.tar.xz
build/Spotube-*-x86_64.AppImage
# Building Android Application
- run: echo '${{ secrets.KEYSTORE }}' | base64 --decode > android/app/upload-keystore.jks
- run: echo '${{ secrets.KEY_PROPERTIES }}' > android/key.properties
- run: flutter build apk
- run: make apk
- uses: actions/upload-artifact@v2
with:
name: Spotube-Android-Bundle
path: |
build/Spotube-android-all-arch.apk
build_windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v3
with:
repository: KRTirtho/flutter_distributor
ref: deb-implementation
path: build/flutter_distributor
- uses: subosito/flutter-action@v2.2.0
with:
cache: true
- run: flutter config --enable-windows-desktop
- run: flutter pub get
- run: dart bin/create-secrets.dart '${{ secrets.LYRICS_SECRET }}' '${{ secrets.SPOTIFY_SECRET }}'
- run: choco install innosetup -y
- run: dart pub global activate melos
- run: cd build/flutter_distributor && melos bootstrap && cd ../..
- run: dart build/flutter_distributor/packages/flutter_distributor/bin/main.dart package --platform=windows --targets=exe --skip-clean
- uses: actions/upload-artifact@v3
with:
name: Spotube-Windows-Bundle
path: |
dist/**/*.exe
build_macos:
runs-on: macos-11
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
cache: true
- run: flutter config --enable-macos-desktop
- run: flutter pub get
- run: dart bin/create-secrets.dart '${{ secrets.LYRICS_SECRET }}' '${{ secrets.SPOTIFY_SECRET }}'
- run: flutter build macos
- run: du -sh build/macos/Build/Products/Release/spotube.app
- run: npm install -g appdmg
- run: appdmg appdmg.json build/Spotube-macos-x86_64.dmg
- uses: actions/upload-artifact@v2
with:
name: Spotube-Macos-Bundle
path: |
build/Spotube-macos-x86_64.dmg