name: Build Linux App on: push: branches: [ "main", "master" ] jobs: build: runs-on: ubuntu-latest container: image: ghcr.io/cirruslabs/flutter:latest steps: - name: Instalacja Node.js (wymagane przez Gitea Actions) run: | apt-get update apt-get install -y nodejs - name: Pobranie kodu repozytorium uses: actions/checkout@v3 - name: Instalacja bibliotek systemowych dla Linux Desktop run: | apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev lld file - name: Aktywacja wsparcia dla Linuxa run: flutter config --enable-linux-desktop - name: Pobranie paczek Fluttera run: flutter pub get - name: Zbudowanie aplikacji na Linuxa (Release) run: flutter build linux --release - name: Przygotowanie struktury AppDir run: | mkdir -p AppDir/usr/bin # Kopiujemy całą zawartość zbudowanej apki (plik wykonywalny, lib, data) cp -r build/linux/x64/release/bundle/* AppDir/usr/bin/ # Tworzymy plik .desktop (konfiguracja dla systemu Linux) cat < AppDir/trainhub.desktop [Desktop Entry] Version=1.0 Type=Application Terminal=false Name=Trainhub Exec=trainhub_flutter %u Icon=trainhub Categories=Utility; EOF # Kopiujemy domyślną ikonę Fluttera jako ikonę aplikacji cp linux/runner/resources/app_icon.png AppDir/trainhub.png # Tworzymy "AppRun" czyli skrót uruchamiający nasz plik wykonywalny cd AppDir ln -s usr/bin/trainhub_flutter AppRun cd .. - name: Pobranie appimagetool i generowanie AppImage run: | # Pobieramy oficjalne narzędzie do tworzenia AppImage wget -O appimagetool "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" chmod +x appimagetool export APPIMAGE_EXTRACT_AND_RUN=1 # Sklejamy folder AppDir w jeden plik AppImage! ./appimagetool AppDir Trainhub-x86_64.AppImage # --- ZMIANA: TUTAJ UDOSTĘPNIAMY DWIE WERSJE --- - name: Udostępnienie gotowej aplikacji (wersja AppImage) uses: actions/upload-artifact@v3 with: name: Trainhub-Linux-AppImage path: Trainhub-x86_64.AppImage - name: Udostępnienie gotowej aplikacji (wersja ZIP - Fallback) uses: actions/upload-artifact@v3 with: name: Trainhub-Linux-Portable-ZIP path: build/linux/x64/release/bundle/