Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 67 additions & 18 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,30 +124,52 @@ jobs:

# --- Build and Validation Stage ---
unit-tests:
name: Run Unit Tests (${{ matrix.os }})
name: Unit Tests (${{ matrix.target.name }})
if: github.ref != 'refs/heads/gh-pages'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [fedora:latest, debian:latest]
target:
- name: 'Fedora'
image: 'fedora:latest'
pkg_cmd: 'dnf install -y'
deps: 'bats python3-pytest python3-pytest-cov python3-pytest-xdist make hostname util-linux python3-yaml'
- name: 'AlmaLinux'
image: 'almalinux:9'
# Enable CRB for epel, then install epel-release for bats, then install packages
pkg_cmd: 'dnf install -y dnf-plugins-core && dnf config-manager --set-enabled crb && dnf install -y epel-release && dnf install -y'
deps: 'bats python3-pytest python3-pytest-cov python3-pytest-xdist make hostname util-linux python3-yaml'
- name: 'Debian'
image: 'debian:latest'
pkg_cmd: 'apt-get update && apt-get install -y'
deps: 'bats python3-pytest python3-pytest-cov python3-pytest-xdist make hostname bsdutils python3-yaml'
- name: 'Ubuntu'
image: 'ubuntu:latest'
pkg_cmd: 'apt-get update && apt-get install -y'
deps: 'bats python3-pytest python3-pytest-cov python3-pytest-xdist make hostname bsdutils python3-yaml'
- name: 'Arch Linux'
image: 'archlinux:latest'
pkg_cmd: 'pacman -Syu --noconfirm'
deps: 'bats python-pytest python-pytest-cov python-pytest-xdist make inetutils util-linux python-yaml'
- name: 'OpenSUSE'
image: 'opensuse/tumbleweed:latest'
pkg_cmd: 'zypper --non-interactive install'
deps: 'bats python3-pytest python3-pytest-cov python3-pytest-xdist make hostname util-linux python3-PyYAML python3-dbus-python'
container:
image: ${{ matrix.os }}
image: ${{ matrix.target.image }}
steps:
- name: Checkout Repository
uses: actions/checkout@v5

- name: Install Test Dependencies
run: |
if command -v dnf >/dev/null 2>&1; then
dnf install -y bats python3-pytest python3-pytest-cov python3-pytest-xdist make hostname util-linux python3-yaml
else
apt-get update && apt-get install -y bats python3-pytest python3-pytest-cov python3-pytest-xdist make hostname bsdutils python3-yaml
fi
${{ matrix.target.pkg_cmd }} ${{ matrix.target.deps }}

- name: Run Tests
run: |
export PYTHONPATH=src
make test

build-rpm:
name: Build & Verify RPMs
if: github.ref != 'refs/heads/gh-pages'
Expand Down Expand Up @@ -214,7 +236,6 @@ jobs:
name: debs
path: debs/
retention-days: 5

smoke-test:
name: Smoke Test (${{ matrix.os }})
if: github.ref != 'refs/heads/gh-pages'
Expand All @@ -223,42 +244,69 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [fedora:40, fedora:41, ubuntu:latest, debian:latest]
# Added almalinux:9 and opensuse/tumbleweed for comprehensive Linux representation
os: [fedora:40, fedora:41, almalinux:9, ubuntu:latest, debian:latest, opensuse/tumbleweed:latest]
container:
image: ${{ matrix.os }}
options: --privileged
steps:
- name: Checkout Repository
uses: actions/checkout@v5

- name: Install Runtime Dependencies
run: |
if [ -f /etc/debian_version ]; then
if command -v apt-get >/dev/null 2>&1; then
apt-get update && apt-get install -y curl unzip systemd
elif command -v zypper >/dev/null 2>&1; then
zypper --non-interactive --no-gpg-checks install curl unzip systemd util-linux shadow
else
dnf install -y curl unzip systemd shadow-utils util-linux
# For AlmaLinux, enable EPEL, CRB, and Oracle UEK (for snapper)
if grep -q "AlmaLinux" /etc/os-release; then
dnf install -y epel-release dnf-plugins-core
dnf config-manager --set-enabled crb || true
{
echo "[ol9_UEKR7]"
echo "name=Oracle Linux 9 UEK Release 7 (\$basearch)"
echo "baseurl=https://yum.oracle.com/repo/OracleLinux/OL9/UEKR7/\$basearch/"
echo "gpgkey=https://yum.oracle.com/RPM-GPG-KEY-oracle-ol9"
echo "gpgcheck=1"
echo "enabled=1"
} > /etc/yum.repos.d/oracle-linux-9.repo
dnf makecache
# Pre-install dependencies to ensure they are available
dnf install -y --allowerasing snapper s-nail || dnf install -y --allowerasing snapper mailx
fi

dnf install -y --allowerasing curl unzip systemd shadow-utils util-linux
fi

- name: Retrieve RPM Artifacts
if: contains(matrix.os, 'fedora')
if: contains(matrix.os, 'fedora') || contains(matrix.os, 'almalinux') || contains(matrix.os, 'opensuse')
uses: actions/download-artifact@v4
with:
name: rpms
path: rpms

- name: Retrieve DEB Artifacts
if: contains(matrix.os, 'ubuntu') || contains(matrix.os, 'debian')
uses: actions/download-artifact@v4
with:
name: debs
path: debs

- name: Execute Package Installation
run: |
if [ -f /etc/debian_version ]; then
if command -v apt-get >/dev/null 2>&1; then
apt-get install -y ./debs/*.deb
elif command -v zypper >/dev/null 2>&1; then
zypper --non-interactive --no-gpg-checks install rpms/flatpak-automatic-[0-9].*.noarch.rpm
else
dnf install -y rpms/flatpak-automatic-[0-9].*.noarch.rpm
dnf install -y --allowerasing rpms/flatpak-automatic-[0-9].*.noarch.rpm
fi

- name: Validate Filesystem Integrity
run: |
if [ -f /etc/debian_version ]; then
if command -v apt-get >/dev/null 2>&1; then
test -f /etc/default/flatpak-automatic
test -f /lib/systemd/system/flatpak-automatic.timer || test -f /usr/lib/systemd/system/flatpak-automatic.timer
test -f /lib/systemd/system/flatpak-automatic.service || test -f /usr/lib/systemd/system/flatpak-automatic.service
Expand All @@ -268,9 +316,10 @@ jobs:
test -f /usr/lib/systemd/system/flatpak-automatic.service
fi
test -f /usr/bin/flatpak-automatic

- name: Verify Systemd Unit Syntax
run: |
if [ -f /etc/debian_version ]; then
if command -v apt-get >/dev/null 2>&1; then
systemd-analyze verify /lib/systemd/system/flatpak-automatic.timer || systemd-analyze verify /usr/lib/systemd/system/flatpak-automatic.timer
systemd-analyze verify /lib/systemd/system/flatpak-automatic.service || systemd-analyze verify /usr/lib/systemd/system/flatpak-automatic.service
else
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,4 @@ __pycache__/
build_docs/
site/
src/flatpak_automatic.egg-info/
htmlcov/
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,37 @@ The used format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.5.37] - 2026-05-05

### 🐛 Bug Fixes

- _(rpm)_ Use compatible package names for OpenSUSE and AlmaLinux

## [1.5.36] - 2026-05-05

### 🐛 Bug Fixes

- _(rpm)_ Mark example config as configuration file to satisfy rpmlint
- _(rpm)_ Mark example config as noreplace to satisfy rpmlint

### ⚙️ Miscellaneous Tasks

- _(release)_ Bump version to 1.5.36

## [1.5.35] - 2026-05-05

### 🐛 Bug Fixes

- _(ci)_ Resolve OpenSUSE and AlmaLinux installation issues and improve spec
portability

## [1.5.34] - 2026-05-05

### ⚙️ Miscellaneous Tasks

- Expand distro testing coverage with AlmaLinux, Arch, and OpenSUSE
- Fix Arch Linux package name for bats and expand distro matrix

## [1.5.33] - 2026-05-05

### 🐛 Bug Fixes
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

NAME := flatpak-automatic
EPOCH := 1
VERSION := 1.5.33
VERSION := 1.5.37
REL_NUM := 1
DATE := $(shell LC_ALL=C date +"%a %b %d %Y")
AUTHOR := "fedoraBee <9395414+fedoraBee@users.noreply.github.com>"
Expand Down
2 changes: 1 addition & 1 deletion assets/banner.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion config/sysconfig/flatpak-automatic
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# Please migrate your settings to the new YAML format.
# ==============================================================================

# Version: 1.5.33 | Built for Fedora & Universal RPM Systems
# Version: 1.5.37 | Built for Fedora & Universal RPM Systems
# Built for Fedora & Universal RPM Systems

# --- [ Universal Notifications (Apprise) ] ---
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "flatpak-automatic"
version = "1.5.33"
version = "1.5.37"
authors = [
{ name = "fedoraBee", email = "9395414+fedoraBee@users.noreply.github.com" },
]
Expand Down
8 changes: 4 additions & 4 deletions rpm/flatpak-automatic.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ BuildRequires: systemd-rpm-macros

Requires: flatpak
Requires: python3
Requires: python3-yaml
Requires: python3-dbus
Requires: (python3-pyyaml or python3-PyYAML)
Requires: (python3-dbus or python3-dbus-python)
Requires: snapper
Requires: s-nail
Requires: (s-nail or mailx)
Requires: systemd
Recommends: python3-apprise

Expand Down Expand Up @@ -78,7 +78,7 @@ fi
%dir %{_sysconfdir}/flatpak-automatic
%dir %{_sysconfdir}/flatpak-automatic/templates
%config(noreplace) %{_sysconfdir}/flatpak-automatic/config.yaml
%{_sysconfdir}/flatpak-automatic/config.example.yaml
%config(noreplace) %{_sysconfdir}/flatpak-automatic/config.example.yaml
%config(noreplace) %{_sysconfdir}/flatpak-automatic/config.user.yaml
%config(noreplace) %{_sysconfdir}/flatpak-automatic/templates/*

Expand Down
2 changes: 1 addition & 1 deletion src/flatpak-automatic.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
# Version: 1.5.33
# Version: 1.5.37
import sys
import os

Expand Down
2 changes: 1 addition & 1 deletion src/flatpak_automatic/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from .updater import FlatpakUpdater

__version__ = "1.5.33"
__version__ = "1.5.37"

from .snapper import SnapperManager
from .config import ConfigManager, StateManager
Expand Down
2 changes: 1 addition & 1 deletion src/flatpak_automatic/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def banner() -> str:
f"{Colors.OKBLUE} | __| |__ _ | |_ _ __ __ _ | |__ \n"
f"{Colors.HEADER} | _|| / _` || ._| '_ \\/ _` || / / \n"
f"{Colors.OKPINK} |_| |_\\__,_|\\__|| .__/\\__,_||_\\_\\\n"
f" AUTOMATIC |_| {Colors.ENDC} {Colors.OKCYAN} v1.5.33{Colors.ENDC}\n"
f" AUTOMATIC |_| {Colors.ENDC} {Colors.OKCYAN} v1.5.37{Colors.ENDC}\n"
)


Expand Down
2 changes: 1 addition & 1 deletion tbump.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[version]
current = "1.5.33"
current = "1.5.37"
# Updated regex to support X.Y.Z and X.Y.Z-rc1 (or -beta, -alpha)
regex = '''
(?P<major>\d+)
Expand Down
Loading