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
This commit is contained in:
Fazri Gading
2026-01-26 14:14:26 +08:00
committed by GitHub
parent c4a32ce1e0
commit 6f10b1390d

View File

@@ -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/**/*