5 Commits

Author SHA1 Message Date
Uyanide 740411f194 🐛 fix: correct behaviour of --disable-actions
Release / Build ArchLinux Package (push) Successful in 1m0s
Release / Publish to Gitea Release (push) Successful in 3s
Release / Publish to AUR (push) Successful in 9s
2026-03-24 12:48:01 +01:00
Uyanide 1a2daec165 🚀 CD: refactor release workflow 2026-03-24 11:42:41 +01:00
Uyanide 524b53b7b2 CD: rename workflow to Release 2026-03-24 11:23:10 +01:00
Uyanide b5ea96bb8b 🚀 CD: add MAKEFLAGS to optimize local build process 2026-03-24 11:14:08 +01:00
Uyanide 470bb1620a 🚀 CD: 😡
CI/CD / Package (push) Successful in 2m26s
CI/CD / Publish (push) Successful in 10s
2026-03-24 11:10:24 +01:00
9 changed files with 65 additions and 47 deletions
+38 -39
View File
@@ -1,4 +1,4 @@
name: CI/CD name: Release
on: on:
push: push:
@@ -6,28 +6,19 @@ on:
- 'v*' - 'v*'
jobs: jobs:
build: build-arch:
name: Package name: Build ArchLinux Package
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Code - name: Checkout Code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Extract Version - name: Extract Version
run: | run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
RAW_VERSION="${GITHUB_REF#refs/tags/v}"
if [[ "$RAW_VERSION" == *-* ]]; then
echo "PKGVER=${RAW_VERSION%-*}" >> $GITHUB_ENV
echo "PKGREL=${RAW_VERSION##*-}" >> $GITHUB_ENV
else
echo "PKGVER=$RAW_VERSION" >> $GITHUB_ENV
echo "PKGREL=1" >> $GITHUB_ENV
fi
echo "FULL_TAG=$RAW_VERSION" >> $GITHUB_ENV
- name: Generate PKGBUILD - name: Generate PKGBUILD
run: | run: |
TAR_URL="https://git.uyani.de/Uyanide/WallReel/archive/v${{ env.FULL_TAG }}.tar.gz" TAR_URL="https://git.uyani.de/Uyanide/WallReel/archive/v${{ env.VERSION }}.tar.gz"
wget -qO source.tar.gz "$TAR_URL" wget -qO source.tar.gz "$TAR_URL"
SHA256=$(sha256sum source.tar.gz | awk '{print $1}') SHA256=$(sha256sum source.tar.gz | awk '{print $1}')
@@ -35,20 +26,21 @@ jobs:
cat << 'EOF' > PKGBUILD cat << 'EOF' > PKGBUILD
# Maintainer: Uyanide <me@uyani.de> # Maintainer: Uyanide <me@uyani.de>
pkgname=wallreel pkgname=wallreel
pkgver=${{ env.PKGVER }} pkgver=${{ env.VERSION }}
pkgrel=${{ env.PKGREL }} pkgrel=1
pkgdesc="Choose and set desktop wallpapers with customizable themes and actions" pkgdesc="Choose and set desktop wallpapers with customizable themes and actions"
arch=('x86_64') arch=('x86_64')
url="https://git.uyani.de/Uyanide/WallReel" url="https://git.uyani.de/Uyanide/WallReel"
license=('MIT') license=('MIT')
depends=('qt6-base' 'qt6-declarative' 'gcc-libs' 'glibc') depends=('qt6-base' 'qt6-declarative' 'gcc-libs' 'glibc')
makedepends=('cmake' 'ninja') makedepends=('cmake')
source=("${pkgname}-${pkgver}.tar.gz::https://git.uyani.de/Uyanide/WallReel/archive/v${{ env.FULL_TAG }}.tar.gz") options=('!debug')
source=("${pkgname}-${pkgver}.tar.gz::https://git.uyani.de/Uyanide/WallReel/archive/v${pkgver}.tar.gz")
sha256sums=('INSERT_SHA256_HERE') sha256sums=('INSERT_SHA256_HERE')
build() { build() {
cd "wallreel" cd "wallreel"
cmake -B build -S . -G Ninja \ cmake -B build -S . \
-DCMAKE_BUILD_TYPE='Release' \ -DCMAKE_BUILD_TYPE='Release' \
-DCMAKE_INSTALL_PREFIX='/usr' \ -DCMAKE_INSTALL_PREFIX='/usr' \
-Wno-dev -Wno-dev
@@ -73,7 +65,9 @@ jobs:
pacman-key --init && pacman-key --populate pacman-key --init && pacman-key --populate
pacman -Sy --noconfirm archlinux-keyring pacman -Sy --noconfirm archlinux-keyring
pacman -Su --noconfirm base-devel cmake ninja qt6-base qt6-declarative sudo pacman -Su --noconfirm base-devel cmake qt6-base qt6-declarative sudo
echo 'MAKEFLAGS="-j$(nproc)"' >> /etc/makepkg.conf
useradd -m builduser useradd -m builduser
chown -R builduser:builduser /workspace chown -R builduser:builduser /workspace
@@ -85,48 +79,53 @@ jobs:
tar -cf - *.pkg.tar.zst PKGBUILD SRCINFO.txt >&3 tar -cf - *.pkg.tar.zst PKGBUILD SRCINFO.txt >&3
" | tar -xf - " | tar -xf -
- name: Upload Artifacts - name: Upload Arch Artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: release-artifacts name: arch-artifacts
path: | path: |
*.pkg.tar.zst *.pkg.tar.zst
PKGBUILD PKGBUILD
SRCINFO.txt SRCINFO.txt
release: publish-gitea:
name: Publish name: Publish to Gitea Release
needs: build needs: [build-arch]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Extract Version - name: Extract Version
run: | run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
RAW_VERSION="${GITHUB_REF#refs/tags/v}"
if [[ "$RAW_VERSION" == *-* ]]; then
echo "PKGVER=${RAW_VERSION%-*}" >> $GITHUB_ENV
echo "PKGREL=${RAW_VERSION##*-}" >> $GITHUB_ENV
else
echo "PKGVER=$RAW_VERSION" >> $GITHUB_ENV
echo "PKGREL=1" >> $GITHUB_ENV
fi
echo "FULL_TAG=$RAW_VERSION" >> $GITHUB_ENV
- name: Download Artifacts - name: Download Arch Artifacts
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: release-artifacts name: arch-artifacts
path: . path: .
- name: Publish to Gitea Release - name: Publish to Gitea Release
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v1
with: with:
name: WallReel ${{ env.FULL_TAG }} name: WallReel ${{ env.VERSION }}
draft: false draft: false
prerelease: false prerelease: false
files: "*.pkg.tar.zst" files: "*.pkg.tar.zst"
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-aur:
name: Publish to AUR
needs: [build-arch]
runs-on: ubuntu-latest
steps:
- name: Extract Version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
- name: Download Arch Artifacts
uses: actions/download-artifact@v3
with:
name: arch-artifacts
path: .
- name: Publish to AUR - name: Publish to AUR
env: env:
AUR_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }} AUR_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
@@ -159,5 +158,5 @@ jobs:
EOF EOF
git add PKGBUILD LICENSE .SRCINFO git add PKGBUILD LICENSE .SRCINFO
git commit -m "Release v${{ env.FULL_TAG }}" git commit -m "Release v${{ env.VERSION }}"
git push origin master git push origin master
+1 -1
View File
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
project(WallReel VERSION 2.0.0 LANGUAGES CXX) project(WallReel VERSION 2.0.2 LANGUAGES CXX)
set(EXECUTABLE_NAME "wallreel") set(EXECUTABLE_NAME "wallreel")
set(CORELIB_NAME "wallreel-core") set(CORELIB_NAME "wallreel-core")
+1 -1
View File
@@ -1,6 +1,6 @@
.\" Automatically generated by Pandoc 3.5 .\" Automatically generated by Pandoc 3.5
.\" .\"
.TH "WALLREEL" "1" "2026\-03\-24" "WallReel 2.0.0" "User Commands" .TH "WALLREEL" "1" "2026\-03\-24" "WallReel 2.0.2" "User Commands"
.SH NAME .SH NAME
wallreel \- Choose and set desktop wallpapers with customizable themes wallreel \- Choose and set desktop wallpapers with customizable themes
and actions and actions
+1 -1
View File
@@ -1,6 +1,6 @@
.\" Automatically generated by Pandoc 3.5 .\" Automatically generated by Pandoc 3.5
.\" .\"
.TH "WALLREEL" "5" "2026\-03\-24" "WallReel 2.0.0" "File Formats Manual" .TH "WALLREEL" "5" "2026\-03\-24" "WallReel 2.0.2" "File Formats Manual"
.SH NAME .SH NAME
wallreel\-config \- configuration format for wallreel wallreel\-config \- configuration format for wallreel
.SH SYNOPSIS .SH SYNOPSIS
+9 -1
View File
@@ -26,8 +26,9 @@ Manager::Manager(
const QDir& picturesDir, const QDir& picturesDir,
const QStringList& searchDirs, const QStringList& searchDirs,
const QString& configPath, const QString& configPath,
bool disableActions,
QObject* parent) QObject* parent)
: QObject(parent), m_configDir(configDir) { : QObject(parent), m_configDir(configDir), m_disableActions(disableActions) {
connect(this, &Manager::stateCaptured, this, [this]() { connect(this, &Manager::stateCaptured, this, [this]() {
m_stateCaptured = true; m_stateCaptured = true;
WR_INFO("State capture completed"); WR_INFO("State capture completed");
@@ -398,6 +399,13 @@ void Manager::captureState() {
if (m_stateCaptured) { if (m_stateCaptured) {
WR_DEBUG("State already captured, skipping capture"); WR_DEBUG("State already captured, skipping capture");
emit stateCaptured(); emit stateCaptured();
return;
}
if (m_disableActions) {
WR_DEBUG("Actions are disabled, skipping state capture");
emit stateCaptured();
return;
} }
if (m_pendingCaptures > 0) { if (m_pendingCaptures > 0) {
+4
View File
@@ -27,6 +27,7 @@ class Manager : public QObject {
* @param searchDirs Additional directories to search for wallpapers (not recursive) * @param searchDirs Additional directories to search for wallpapers (not recursive)
* @param configPath Optional path to a specific configuration file (overrides the default config path) * @param configPath Optional path to a specific configuration file (overrides the default config path)
* @param picturesDir The pictures directory (default location for user wallpapers) * @param picturesDir The pictures directory (default location for user wallpapers)
* @param disableActions Whether to disable actions
* @param parent QObject parent * @param parent QObject parent
* *
* @note The constructor will load the configuration and scan for wallpapers immediately. * @note The constructor will load the configuration and scan for wallpapers immediately.
@@ -36,6 +37,7 @@ class Manager : public QObject {
const QDir& picturesDir, const QDir& picturesDir,
const QStringList& searchDirs = {}, const QStringList& searchDirs = {},
const QString& configPath = "", const QString& configPath = "",
bool disableActions = false,
QObject* parent = nullptr); QObject* parent = nullptr);
~Manager(); ~Manager();
@@ -88,6 +90,8 @@ class Manager : public QObject {
private: private:
const QDir m_configDir; const QDir m_configDir;
bool m_disableActions = false;
WallpaperConfigItems m_wallpaperConfig; WallpaperConfigItems m_wallpaperConfig;
ThemeConfigItems m_themeConfig; ThemeConfigItems m_themeConfig;
ActionConfigItems m_actionConfig; ActionConfigItems m_actionConfig;
+9 -2
View File
@@ -18,12 +18,13 @@ class Bootstrap {
friend class Carousel; friend class Carousel;
public: public:
Bootstrap(const AppOptions& options) { Bootstrap(const AppOptions& options) : options(options) {
configMgr = new Config::Manager( configMgr = new Config::Manager(
Utils::getConfigDir(), Utils::getConfigDir(),
Utils::getPicturesDir(), Utils::getPicturesDir(),
options.appendDirs, options.appendDirs,
options.configPath); options.configPath,
options.disableActions);
cacheMgr = new Cache::Manager( cacheMgr = new Cache::Manager(
Utils::getCacheDir(), Utils::getCacheDir(),
@@ -58,6 +59,11 @@ class Bootstrap {
} }
bool apply(const QString& path) { bool apply(const QString& path) {
if (options.disableActions) {
Logger::warn("Bootstrap", "Actions are disabled, cannot apply wallpaper");
return false;
}
QEventLoop loop; QEventLoop loop;
bool successFlag = false; bool successFlag = false;
@@ -122,6 +128,7 @@ class Bootstrap {
} }
private: private:
const AppOptions& options;
Cache::Manager* cacheMgr{}; Cache::Manager* cacheMgr{};
Config::Manager* configMgr{}; Config::Manager* configMgr{};
Image::Manager* imageMgr{}; Image::Manager* imageMgr{};
+1 -1
View File
@@ -2,7 +2,7 @@
title: WALLREEL title: WALLREEL
section: 1 section: 1
header: User Commands header: User Commands
footer: WallReel 2.0.0 footer: WallReel 2.0.2
date: 2026-03-24 date: 2026-03-24
--- ---
+1 -1
View File
@@ -2,7 +2,7 @@
title: WALLREEL title: WALLREEL
section: 5 section: 5
header: File Formats Manual header: File Formats Manual
footer: WallReel 2.0.0 footer: WallReel 2.0.2
date: 2026-03-24 date: 2026-03-24
--- ---