84 lines
2.8 KiB
YAML
84 lines
2.8 KiB
YAML
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 <<EOF > 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
|
|
wget -O AppDir/trainhub.png "https://raw.githubusercontent.com/flutter/flutter/master/examples/hello_world/android/app/src/main/res/mipmap-hdpi/ic_launcher.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/ |