9 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
Uyanide b1372cacd7 🚀 CD: change license to 0BSD
CI/CD / Package (push) Successful in 59s
CI/CD / Publish (push) Successful in 10s
2026-03-24 10:40:22 +01:00
Uyanide e59fba0689 🚀 CD
CI/CD / Package (push) Successful in 1m0s
CI/CD / Publish (push) Successful in 10s
2026-03-24 09:54:32 +01:00
Uyanide fe174ba2e0 🚀 CD
CI/CD / Package (push) Successful in 1m9s
CI/CD / Publish (push) Failing after 15s
2026-03-24 09:47:55 +01:00
Uyanide d8ab530fa8 🚀 CD
CI/CD / Package (push) Failing after 1m3s
CI/CD / Publish (push) Has been skipped
2026-03-24 09:27:31 +01:00
9 changed files with 84 additions and 38 deletions
+54 -27
View File
@@ -1,4 +1,4 @@
name: CI/CD
name: Release
on:
push:
@@ -6,8 +6,8 @@ on:
- 'v*'
jobs:
build:
name: Package
build-arch:
name: Build ArchLinux Package
runs-on: ubuntu-latest
steps:
- name: Checkout Code
@@ -23,7 +23,7 @@ jobs:
wget -qO source.tar.gz "$TAR_URL"
SHA256=$(sha256sum source.tar.gz | awk '{print $1}')
cat << EOF > PKGBUILD
cat << 'EOF' > PKGBUILD
# Maintainer: Uyanide <me@uyani.de>
pkgname=wallreel
pkgver=${{ env.VERSION }}
@@ -33,26 +33,29 @@ jobs:
url="https://git.uyani.de/Uyanide/WallReel"
license=('MIT')
depends=('qt6-base' 'qt6-declarative' 'gcc-libs' 'glibc')
makedepends=('cmake' 'ninja')
source=("\${pkgname}-\${pkgver}.tar.gz::https://git.uyani.de/Uyanide/WallReel/archive/v\${pkgver}.tar.gz")
sha256sums=('\$SHA256')
makedepends=('cmake')
options=('!debug')
source=("${pkgname}-${pkgver}.tar.gz::https://git.uyani.de/Uyanide/WallReel/archive/v${pkgver}.tar.gz")
sha256sums=('INSERT_SHA256_HERE')
build() {
cd "wallreel"
cmake -B build -S . -G Ninja \\
-DCMAKE_BUILD_TYPE='Release' \\
-DCMAKE_INSTALL_PREFIX='/usr' \\
cmake -B build -S . \
-DCMAKE_BUILD_TYPE='Release' \
-DCMAKE_INSTALL_PREFIX='/usr' \
-Wno-dev
cmake --build build
}
package() {
cd "wallreel"
DESTDIR="\$pkgdir" cmake --install build
install -Dm644 LICENSE "\$pkgdir/usr/share/licenses/\$pkgname/LICENSE"
DESTDIR="$pkgdir" cmake --install build
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
EOF
sed -i "s/INSERT_SHA256_HERE/$SHA256/" PKGBUILD
- name: Build and Generate AUR Meta
run: |
tar -cf - . | docker run --rm -i archlinux:latest /bin/bash -e -c "
@@ -62,40 +65,41 @@ jobs:
pacman-key --init && pacman-key --populate
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
chown -R builduser:builduser /workspace
echo 'builduser ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
su - builduser -c 'cd /workspace && makepkg -sf --noconfirm'
su - builduser -c 'cd /workspace && makepkg --printsrcinfo > .SRCINFO'
su - builduser -c 'cd /workspace && makepkg --printsrcinfo' > SRCINFO.txt
tar -cf - *.pkg.tar.zst PKGBUILD LICENSE .SRCINFO >&3
tar -cf - *.pkg.tar.zst PKGBUILD SRCINFO.txt >&3
" | tar -xf -
- name: Upload Artifacts
uses: actions/upload-artifact@v4
- name: Upload Arch Artifacts
uses: actions/upload-artifact@v3
with:
name: release-artifacts
name: arch-artifacts
path: |
*.pkg.tar.zst
PKGBUILD
LICENSE
.SRCINFO
SRCINFO.txt
release:
name: Publish
needs: build
publish-gitea:
name: Publish to Gitea Release
needs: [build-arch]
runs-on: ubuntu-latest
steps:
- name: Extract Version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
- name: Download Artifacts
uses: actions/download-artifact@v4
- name: Download Arch Artifacts
uses: actions/download-artifact@v3
with:
name: release-artifacts
name: arch-artifacts
path: .
- name: Publish to Gitea Release
@@ -108,6 +112,20 @@ jobs:
env:
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
env:
AUR_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
@@ -127,9 +145,18 @@ jobs:
git config --global user.email "me@uyani.de"
git clone ssh://aur@aur.archlinux.org/wallreel.git aur-repo
cp PKGBUILD LICENSE .SRCINFO aur-repo/
cp PKGBUILD aur-repo/
cp SRCINFO.txt aur-repo/.SRCINFO
cd aur-repo
cat << 'EOF' > LICENSE
Copyright (C) 2026 by Uyanide me@uyani.de
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
EOF
git add PKGBUILD LICENSE .SRCINFO
git commit -m "Release v${{ env.VERSION }}"
git push origin master
+1 -1
View File
@@ -1,6 +1,6 @@
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(CORELIB_NAME "wallreel-core")
+1 -1
View File
@@ -1,6 +1,6 @@
.\" 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
wallreel \- Choose and set desktop wallpapers with customizable themes
and actions
+1 -1
View File
@@ -1,6 +1,6 @@
.\" 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
wallreel\-config \- configuration format for wallreel
.SH SYNOPSIS
+9 -1
View File
@@ -26,8 +26,9 @@ Manager::Manager(
const QDir& picturesDir,
const QStringList& searchDirs,
const QString& configPath,
bool disableActions,
QObject* parent)
: QObject(parent), m_configDir(configDir) {
: QObject(parent), m_configDir(configDir), m_disableActions(disableActions) {
connect(this, &Manager::stateCaptured, this, [this]() {
m_stateCaptured = true;
WR_INFO("State capture completed");
@@ -398,6 +399,13 @@ void Manager::captureState() {
if (m_stateCaptured) {
WR_DEBUG("State already captured, skipping capture");
emit stateCaptured();
return;
}
if (m_disableActions) {
WR_DEBUG("Actions are disabled, skipping state capture");
emit stateCaptured();
return;
}
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 configPath Optional path to a specific configuration file (overrides the default config path)
* @param picturesDir The pictures directory (default location for user wallpapers)
* @param disableActions Whether to disable actions
* @param parent QObject parent
*
* @note The constructor will load the configuration and scan for wallpapers immediately.
@@ -36,6 +37,7 @@ class Manager : public QObject {
const QDir& picturesDir,
const QStringList& searchDirs = {},
const QString& configPath = "",
bool disableActions = false,
QObject* parent = nullptr);
~Manager();
@@ -88,6 +90,8 @@ class Manager : public QObject {
private:
const QDir m_configDir;
bool m_disableActions = false;
WallpaperConfigItems m_wallpaperConfig;
ThemeConfigItems m_themeConfig;
ActionConfigItems m_actionConfig;
+9 -2
View File
@@ -18,12 +18,13 @@ class Bootstrap {
friend class Carousel;
public:
Bootstrap(const AppOptions& options) {
Bootstrap(const AppOptions& options) : options(options) {
configMgr = new Config::Manager(
Utils::getConfigDir(),
Utils::getPicturesDir(),
options.appendDirs,
options.configPath);
options.configPath,
options.disableActions);
cacheMgr = new Cache::Manager(
Utils::getCacheDir(),
@@ -58,6 +59,11 @@ class Bootstrap {
}
bool apply(const QString& path) {
if (options.disableActions) {
Logger::warn("Bootstrap", "Actions are disabled, cannot apply wallpaper");
return false;
}
QEventLoop loop;
bool successFlag = false;
@@ -122,6 +128,7 @@ class Bootstrap {
}
private:
const AppOptions& options;
Cache::Manager* cacheMgr{};
Config::Manager* configMgr{};
Image::Manager* imageMgr{};
+1 -1
View File
@@ -2,7 +2,7 @@
title: WALLREEL
section: 1
header: User Commands
footer: WallReel 2.0.0
footer: WallReel 2.0.2
date: 2026-03-24
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: WALLREEL
section: 5
header: File Formats Manual
footer: WallReel 2.0.0
footer: WallReel 2.0.2
date: 2026-03-24
---