From 6f10b1390dd48665e4bb8c55370a837e7993c2c6 Mon Sep 17 00:00:00 2001 From: Fazri Gading Date: Mon, 26 Jan 2026 14:14:26 +0800 Subject: [PATCH] Release v2.1.1: fix EPERM error and add ArchLinux package (.tar.zst) (#185) * fix: resolve cross-platform EPERM permissions errors modManager.js: - Switch from hardcoded 'junction' to dynamic symlink type based on OS (fixing Linux EPERM). - Add retry logic for directory removal to handle file locking race conditions. - Improve broken symlink detection during profile sync. gameManager.js: - Implement retry loop (3 attempts) for game directory removal in updateGameFiles to prevent EBUSY/EPERM errors on Windows. paths.js: - Prevent fs.mkdirSync failure in getModsPath by pre-checking for broken symbolic links. * fix: missing pacman builds * prepare release for 2.1.1 minor fix for EPERM error permission * prepare release 2.1.1 minor fix EPERM permission error * prepare release 2.1.1 * Update README.md Windows Prequisites for ARM64 builds * fix: remove broken symlink after detected * fix: add pathexists for paths.js to check symlink * fix: isbrokenlink should be true to remove the symlink * add arch package .pkg.tar.zst for release --- .github/workflows/release.yml | 48 ++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d643760..1e2845b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,6 +9,51 @@ on: workflow_dispatch: jobs: + build-arch: + runs-on: ubuntu-latest + + container: + image: archlinux:latest + + steps: + - name: Install base packages + run: | + pacman -Syu --noconfirm + pacman -S --noconfirm \ + base-devel \ + git \ + nodejs \ + npm \ + rpm-tools \ + libxcrypt-compat + + - name: Create build user + run: | + useradd -m builder + echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers + + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Fix permissions + run: chown -R builder:builder . + + - name: Build Arch Package + run: | + sudo -u builder bash << 'EOF' + set -e + makepkg -s --noconfirm + EOF + - uses: actions/upload-artifact@v4 + with: + name: arch-package + path: | + *.pkg.tar.zst + *.src.tar.zst + .SRCINFO + build-linux: runs-on: ubuntu-latest steps: @@ -36,7 +81,6 @@ jobs: dist/*.deb dist/*.rpm dist/*.pacman - dist/*.pkg.tar.zst dist/latest-linux.yml build-windows: @@ -115,6 +159,8 @@ jobs: # If it's the 'release' branch, use 'v2.0.2-beta.r42' # name: ${{ github.ref_type == 'tag' && github.ref_name || format('v{0}-beta.r{1}', steps.pkg_version.outputs.VERSION, github.run_number) }} files: | + artifacts/arch-package/*.pkg.tar.zst + artifacts/arch-package/*.src.tar.zst artifacts/linux-builds/**/* artifacts/windows-builds/**/* artifacts/macos-builds/**/*