Skip to content

ci: fix fvm and attempt to create an AppImage #12

ci: fix fvm and attempt to create an AppImage

ci: fix fvm and attempt to create an AppImage #12

name: cross-platform_build
on:
push:
branches:
- main
env:
APP_NAME: subterfuge
jobs:
macos:
runs-on: macos-15
steps:
- uses: actions/checkout@v5
- name: Install FVM
run: |
curl -fsSL https://fvm.app/install.sh | bash
echo "$HOME/fvm/bin" >> $GITHUB_PATH
- run: fvm install
- run: fvm flutter pub get
- run: fvm dart run build_runner build --delete-conflicting-outputs
- run: fvm flutter precache --macos
- run: cd macos && pod install --repo-update && cd -
- run: fvm flutter config --enable-macos-desktop
- run: fvm flutter build macos --release
- name: Upload macOS artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.APP_NAME }}-macos.app
path: build/macos/Build/Products/Release/${{ env.APP_NAME }}.app
android:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: "17"
cache: "gradle"
- name: Install FVM
run: |
curl -fsSL https://fvm.app/install.sh | bash
echo "$HOME/fvm/bin" >> $GITHUB_PATH
- run: fvm install
- run: fvm flutter pub get
- run: fvm dart run build_runner build --delete-conflicting-outputs
- run: fvm flutter build apk --release
- name: Upload Android APK
uses: actions/upload-artifact@v4
with:
name: ${{ env.APP_NAME }}-android.apk
path: build/app/outputs/flutter-apk/app-release.apk
linux-x64:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- run: sudo apt-get update
- run: sudo apt-get install build-essential libgtk-3-dev
- name: Install FVM
run: |
curl -fsSL https://fvm.app/install.sh | bash
echo "$HOME/fvm/bin" >> $GITHUB_PATH
- run: fvm install
- run: fvm flutter pub get
- run: fvm dart run build_runner build --delete-conflicting-outputs
- run: fvm flutter config --enable-linux-desktop
- run: fvm flutter build linux --release --target-platform=linux-x64
- name: Install appimage-builder dependencies
run: sudo apt install -y binutils coreutils desktop-file-utils fakeroot fuse libgdk-pixbuf2.0-dev patchelf python3-pip python3-setuptools squashfs-tools strace util-linux zsync
- name: Install appimage-builder
run: |
wget -O appimage-builder-x86_64.AppImage https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage
chmod +x appimage-builder-x86_64.AppImage
sudo mv appimage-builder-x86_64.AppImage /usr/local/bin/appimage-builder
- name: Build AppImage
run: appimage-builder --recipe appimage_builder_amd64.yml --skip-test
- name: Upload Linux x64 AppImage
uses: actions/upload-artifact@v4
with:
name: ${{ env.APP_NAME }}-linux-x64.AppImage
path: "*.AppImage"
linux-arm64:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v5
- run: sudo apt-get update
- run: sudo apt-get install build-essential libgtk-3-dev
- name: Install FVM
run: |
curl -fsSL https://fvm.app/install.sh | bash
echo "$HOME/fvm/bin" >> $GITHUB_PATH
- run: fvm install
- run: fvm flutter pub get
- run: fvm dart run build_runner build --delete-conflicting-outputs
- run: fvm flutter config --enable-linux-desktop
- run: fvm flutter build linux --release --target-platform=linux-arm64
- name: Install appimage-builder dependencies
run: sudo apt install -y binutils coreutils desktop-file-utils fakeroot fuse libgdk-pixbuf2.0-dev patchelf python3-pip python3-setuptools squashfs-tools strace util-linux zsync
- name: Install appimage-builder
run: |
wget -O appimage-builder-aarch64.AppImage https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-aarch64.AppImage
chmod +x appimage-builder-aarch64.AppImage
sudo mv appimage-builder-aarch64.AppImage /usr/local/bin/appimage-builder
- name: Build AppImage
run: appimage-builder --recipe appimage_builder_arm64.yml --skip-test
- name: Upload Linux arm64 AppImage
uses: actions/upload-artifact@v4
with:
name: ${{ env.APP_NAME }}-linux-arm64.AppImage
path: "*.AppImage"
windows:
runs-on: windows-2025
steps:
- uses: actions/checkout@v5
- run: choco install fvm
- run: fvm install
- run: fvm flutter pub get
- run: fvm dart run build_runner build --delete-conflicting-outputs
- run: fvm flutter config --enable-windows-desktop
- run: fvm flutter build windows --release
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.APP_NAME }}-windows-x64
path: build\windows\x64\runner\Release