CI 3 #290
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 Linux | |
on: | |
push: | |
branches: | |
- main | |
- dev | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: '3.22.2' | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y cmake ninja-build pkg-config libgtk-3-dev libvulkan-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-x | |
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig | |
pkg-config --cflags gstreamer-1.0 | |
pkg-config --libs gstreamer-1.0 | |
- name: Build Linux App | |
run: | | |
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig | |
flutter pub get | |
flutter build linux | |
- name: Upload Linux Build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: maid-linux | |
path: build/linux/x64/release/bundle | |
create-appimage: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Download Linux Build | |
uses: actions/download-artifact@v4 | |
with: | |
name: maid-linux | |
path: maid-linux | |
- name: Install AppImage tools and dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y appstream util-linux libfuse2 | |
- name: Download and Install AppImageTool | |
run: | | |
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage | |
chmod +x appimagetool-x86_64.AppImage | |
sudo mv appimagetool-x86_64.AppImage /usr/local/bin/appimagetool | |
- name: Prepare AppDir | |
run: | | |
mkdir AppDir | |
cp -r maid-linux/* AppDir/ | |
cp assets/maid.png AppDir/icon.png | |
echo '[Desktop Entry] | |
Name=Maid | |
Exec=maid | |
Icon=icon | |
Type=Application | |
Categories=Utility;' > AppDir/maid.desktop | |
chmod +x AppDir/maid | |
echo '#!/bin/bash | |
HERE="$(dirname "$(readlink -f "${0}")")" | |
exec "$HERE/maid" "$@"' > AppDir/AppRun | |
chmod +x AppDir/AppRun | |
- name: Create AppImage | |
run: | | |
appimagetool AppDir maid.AppImage | |
- name: Upload AppImage | |
uses: actions/upload-artifact@v4 | |
with: | |
name: maid-appimage | |
path: ./maid.AppImage |