This directory contains GitHub Actions workflows for automated building and packaging.
- Builds the application on Ubuntu 22.04
- Runs all tests
- Creates packages:
- Flatpak bundle (
.flatpak) - Debian package (
.deb) - Binary executable
- Flatpak bundle (
- Automatically creates GitHub releases when tags are pushed
# Install build dependencies
sudo apt-get install -y build-essential debhelper meson \
libgtk-4-dev libadwaita-1-dev libsqlite3-dev libx11-dev gettext
# Build package
dpkg-buildpackage -us -uc -b
# Install
sudo dpkg -i ../gtimer_3.1.0-1_amd64.deb# Install flatpak and flathub
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Install SDK
flatpak install flathub org.gnome.Platform//45 org.gnome.Sdk//45
# Build
flatpak-builder --force-clean build-dir flatpak/us.k5n.GTimer.json
# Create bundle
flatpak build-export repo build-dir
flatpak build-bundle repo gtimer.flatpak us.k5n.GTimer
# Install
flatpak install gtimer.flatpakPush a version tag:
git tag v3.1.0
git push origin v3.1.0The workflow will automatically:
- Build all packages
- Create a GitHub release
- Attach all artifacts to the release
Pros:
- Works on all Linux distributions
- Sandboxed with all dependencies
- Can be published to Flathub
- Automatic updates
Cons:
- Larger download size (~50MB)
- Sandboxing may limit some features
Pros:
- Native integration
- Small download size
- System-wide installation
Cons:
- Only works on Debian/Ubuntu
- Dependency on system libraries
Pros:
- Single file download
- No installation required
- Works on any distro
Cons:
- No automatic updates
- Larger file size
To publish on Flathub for easy discovery:
- Fork https://github.com/flathub/flathub
- Create a new branch with your app ID (e.g.,
us.k5n.GTimer) - Add your manifest file
- Submit a pull request
See: https://github.com/flathub/flathub/blob/master/CONTRIBUTING.md