Files
shared-actions/flutter-build-linux

Flutter Build Linux

Composite action to install Linux GTK3 build dependencies, compile Linux Flutter desktop applications, package .deb and .tar.gz installers, and generate release metadata.

Inputs

Name Description Required Default
working_directory Path to the Flutter app package directory. No .
arch Target Linux architecture (amd64 / x64 or arm64). No amd64
build_args Extra arguments passed to flutter build linux. No ''
install_deps Install Linux GTK3 & CMake build dependencies via apt-get. No true
auto_create_linux_runner Automatically run flutter create --platforms=linux . if linux/ directory is missing. No true
output_dir Output directory for packaged .deb and .tar.gz archives. No dist
package_script Optional custom packaging script in repository (e.g., scripts/package_linux.sh). No scripts/package_linux.sh
app_name Application display name for .desktop entry. No Slides for Worship
package_name Debian package slug (e.g., slides-for-worship). No slides-for-worship
binary_name Compiled Linux executable name inside bundle (auto-detected if empty). No ''
icon_path Path to app icon PNG relative to working_directory. No assets/icon.png
maintainer Debian package maintainer string. No Rody Davis <rody.davis.jr@gmail.com>
description Debian package description. No Professional worship slide production and presentation studio.
generate_metadata_json Whether to generate linux_<arch>_metadata.json. No false

Outputs

Name Description
version Resolved package version from pubspec.yaml.
deb_path Path to generated .deb package.
tar_path Path to generated .tar.gz archive.
metadata_path Path to generated linux_<arch>_metadata.json.

Example Usage

- name: Build & Package Linux Release
  uses: rodydavis/shared-actions/flutter-build-linux@main
  with:
    working_directory: packages/sfw_desktop
    arch: ${{ matrix.arch }}
    build_args: --dart-define=API_BASE_URL=https://slidesforworship.app
    generate_metadata_json: 'true'