From 3326fa4445503d6dabfaad633e2dba915af2acdc Mon Sep 17 00:00:00 2001 From: Echo Date: Mon, 27 Apr 2026 00:19:32 +0000 Subject: [PATCH] fix: resolve all 4 build job failures Debian: Add -d flag to dpkg-buildpackage (skip dep check, rustup installed Rust not apt) RPM/Arch: Fix missing run: | YAML syntax in dependency steps Alpine: Fix abuild working directory - use /home/builduser explicitly instead of $(pwd) which referenced act cache path --- .gitea/workflows/ci.yml | 4 +++- build-alpine.sh | 22 ++++++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 5e38dba..b8df23e 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -116,7 +116,7 @@ jobs: sudo apt-get update sudo apt-get install -y build-essential debhelper pkg-config libsystemd-dev - name: Build Debian package - run: sudo dpkg-buildpackage -us -uc -b + sudo dpkg-buildpackage -us -uc -b -d - name: Upload to Gitea Release if: startsWith(github.ref, 'refs/tags/') env: @@ -143,6 +143,7 @@ jobs: . "$HOME/.cargo/env" echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Install build dependencies + run: | sudo dnf install -y gcc rpm-build systemd-devel pkg-config - name: Build release binary run: cargo build --release @@ -213,6 +214,7 @@ jobs: . "$HOME/.cargo/env" echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Install build dependencies + run: | sudo pacman -Syu --noconfirm rust cargo systemd git base-devel gcc - name: Build release binary run: cargo build --release diff --git a/build-alpine.sh b/build-alpine.sh index 66b9d40..1b85a3b 100644 --- a/build-alpine.sh +++ b/build-alpine.sh @@ -95,32 +95,38 @@ if [ "$(id -u)" = "0" ]; then echo "Running as root - creating build user for abuild..." adduser -D -s /bin/sh builduser 2>/dev/null || true addgroup builduser abuild 2>/dev/null || usermod -aG abuild builduser - chown -R builduser:builduser "$(pwd)" - chown -R builduser:builduser /root/packages 2>/dev/null || true + + # Set up builduser home directory for abuild mkdir -p /home/builduser/.abuild - cp /root/.abuild/* /home/builduser/.abuild/ + cp /root/.abuild/* /home/builduser/.abuild/ 2>/dev/null || true chown -R builduser:builduser /home/builduser/.abuild - + KEYFILE=$(ls /home/builduser/.abuild/*.rsa 2>/dev/null | head -1) if [ -z "$KEYFILE" ]; then KEYFILE=$(ls /home/builduser/.abuild/-*.rsa 2>/dev/null | head -1) fi - + echo "Key file: $KEYFILE" echo "PACKAGER_PRIVKEY=\"$KEYFILE\"" > /home/builduser/.abuild/abuild.conf chown builduser:builduser /home/builduser/.abuild/abuild.conf - su - builduser -c "cd $(pwd) && abuild checksum && abuild -d -F && cp /home/builduser/packages/x86_64/*.apk ./releases/ 2>/dev/null || cp /home/builduser/packages/*.apk ./releases/ 2>/dev/null || ls -la /home/builduser/packages/" + + # Run abuild as builduser with explicit working directory + su - builduser -c "cd /home/builduser && abuild checksum && abuild -d -F" + + # Copy APK from builduser packages to releases + mkdir -p releases + cp /home/builduser/packages/x86_64/*.apk releases/ 2>/dev/null || cp /home/builduser/packages/*.apk releases/ 2>/dev/null || find /home/builduser/packages -name "*.apk" -exec cp {} releases/ \; 2>/dev/null || true else abuild checksum abuild -F -r cp ~/packages/x86_64/*.apk releases/ 2>/dev/null || cp ~/packages/*.apk releases/ 2>/dev/null || true fi -# Copy to releases directory +# Copy to releases directory (fallback for non-root builds) echo "" echo "Copying package to releases/..." mkdir -p releases -cp ~/packages/x86_64/*.apk releases/ 2>/dev/null || cp /root/packages/x86_64/*.apk releases/ || find / -name "linux-patch-api-*.apk" -exec cp {} releases/ \; 2>/dev/null || true +cp ~/packages/x86_64/*.apk releases/ 2>/dev/null || cp ~/packages/*.apk releases/ 2>/dev/null || find ~/packages -name "*.apk" -exec cp {} releases/ \; 2>/dev/null || true echo "" echo "=== Build Complete ==="