Files
trainhub-flutter/.gitea/workflows/build-linux.yaml
Kazimierz Ciołek 21f1387fa8
All checks were successful
Build Linux App / build (push) Successful in 4m16s
Edited actions for Linux
2026-02-19 16:01:32 +01:00

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/