From e26f01fc5d97a4f61a565d8ec3f81dad6af7d5dd Mon Sep 17 00:00:00 2001 From: JieXu Date: Tue, 19 Aug 2025 20:14:58 +0800 Subject: [PATCH 1/5] Update build-linux.yml --- .github/workflows/build-linux.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index f793a1cb..09d97337 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -98,4 +98,29 @@ jobs: file: ${{ github.workspace }}/v2rayN*.zip tag: ${{ github.event.inputs.release_tag }} file_glob: true - prerelease: true \ No newline at end of file + prerelease: true + + # release RHEL package + - name: Package RPM (RHEL-family) + if: github.event.inputs.release_tag != '' + run: | + chmod 755 package-rhel.sh + # Build for both x86_64 and aarch64 in one go (explicit version passed; no --buildfrom) + ./package-rhel.sh "${{ github.event.inputs.release_tag }}" --arch all + + - name: Upload RPM artifacts + if: github.event.inputs.release_tag != '' + uses: actions/upload-artifact@v4.6.2 + with: + name: v2rayN-rpm + path: | + ${{ env.HOME }}/rpmbuild/RPMS/**/*.rpm + + - name: Upload RPMs to release + uses: svenstaro/upload-release-action@v2 + if: github.event.inputs.release_tag != '' + with: + file: ${{ env.HOME }}/rpmbuild/RPMS/**/*.rpm + tag: ${{ github.event.inputs.release_tag }} + file_glob: true + prerelease: true From 9dc5f31b68148dbda01dffe870729b92a4acf67a Mon Sep 17 00:00:00 2001 From: JieXu Date: Tue, 19 Aug 2025 20:36:43 +0800 Subject: [PATCH 2/5] Update build-linux.yml --- .github/workflows/build-linux.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 09d97337..f43a0bb4 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -114,13 +114,16 @@ jobs: with: name: v2rayN-rpm path: | - ${{ env.HOME }}/rpmbuild/RPMS/**/*.rpm + /home/runner/rpmbuild/RPMS/x86_64/*.rpm + /home/runner/rpmbuild/RPMS/aarch64/*.rpm - name: Upload RPMs to release uses: svenstaro/upload-release-action@v2 if: github.event.inputs.release_tag != '' with: - file: ${{ env.HOME }}/rpmbuild/RPMS/**/*.rpm + file: | + /home/runner/rpmbuild/RPMS/x86_64/*.rpm + /home/runner/rpmbuild/RPMS/aarch64/*.rpm tag: ${{ github.event.inputs.release_tag }} file_glob: true prerelease: true From 395a3d1f7a00cbb7fab34743d21902f752a3e44a Mon Sep 17 00:00:00 2001 From: JieXu Date: Tue, 19 Aug 2025 20:56:27 +0800 Subject: [PATCH 3/5] Update build-linux.yml --- .github/workflows/build-linux.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index f43a0bb4..90a706cc 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -100,7 +100,7 @@ jobs: file_glob: true prerelease: true - # release RHEL package + # release RHEL package - name: Package RPM (RHEL-family) if: github.event.inputs.release_tag != '' run: | @@ -108,22 +108,25 @@ jobs: # Build for both x86_64 and aarch64 in one go (explicit version passed; no --buildfrom) ./package-rhel.sh "${{ github.event.inputs.release_tag }}" --arch all + - name: Collect RPMs into workspace + if: github.event.inputs.release_tag != '' + run: | + mkdir -p "${{ github.workspace }}/dist/rpm" + rsync -av "$HOME/rpmbuild/RPMS/" "${{ github.workspace }}/dist/rpm/" + - name: Upload RPM artifacts if: github.event.inputs.release_tag != '' uses: actions/upload-artifact@v4.6.2 with: name: v2rayN-rpm path: | - /home/runner/rpmbuild/RPMS/x86_64/*.rpm - /home/runner/rpmbuild/RPMS/aarch64/*.rpm + ${{ github.workspace }}/dist/rpm/**/*.rpm - name: Upload RPMs to release uses: svenstaro/upload-release-action@v2 if: github.event.inputs.release_tag != '' with: - file: | - /home/runner/rpmbuild/RPMS/x86_64/*.rpm - /home/runner/rpmbuild/RPMS/aarch64/*.rpm + file: ${{ github.workspace }}/dist/rpm/**/*.rpm tag: ${{ github.event.inputs.release_tag }} file_glob: true prerelease: true From f8f5a9440e0a11f8473170aac8feb15932838556 Mon Sep 17 00:00:00 2001 From: JieXu Date: Tue, 19 Aug 2025 21:20:52 +0800 Subject: [PATCH 4/5] Update build-linux.yml --- .github/workflows/build-linux.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 90a706cc..0fb8574f 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -100,7 +100,7 @@ jobs: file_glob: true prerelease: true - # release RHEL package + # release RHEL package - name: Package RPM (RHEL-family) if: github.event.inputs.release_tag != '' run: | @@ -113,6 +113,9 @@ jobs: run: | mkdir -p "${{ github.workspace }}/dist/rpm" rsync -av "$HOME/rpmbuild/RPMS/" "${{ github.workspace }}/dist/rpm/" + # Rename to requested filenames + find "${{ github.workspace }}/dist/rpm" -name "v2rayN-*-1.x86_64.rpm" -exec mv {} "${{ github.workspace }}/dist/rpm/v2rayN-linux-rhel-x64.rpm" \; || true + find "${{ github.workspace }}/dist/rpm" -name "v2rayN-*-1.aarch64.rpm" -exec mv {} "${{ github.workspace }}/dist/rpm/v2rayN-linux-rhel-arm64.rpm" \; || true - name: Upload RPM artifacts if: github.event.inputs.release_tag != '' From 24de5f8381abb60d2f4e686ef0ddc6f2e09e48a2 Mon Sep 17 00:00:00 2001 From: JieXu Date: Wed, 20 Aug 2025 07:48:18 +0800 Subject: [PATCH 5/5] Update package-rhel.sh --- package-rhel.sh | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/package-rhel.sh b/package-rhel.sh index e852d174..b3d987bc 100644 --- a/package-rhel.sh +++ b/package-rhel.sh @@ -332,6 +332,7 @@ download_xray() { # Download Xray core and install to outdir/xray local outdir="$1" ver="${XRAY_VER:-}" url tmp zipname="xray.zip" mkdir -p "$outdir" + if [[ -n "${XRAY_VER:-}" ]]; then ver="${XRAY_VER}"; fi if [[ -z "$ver" ]]; then ver="$(curl -fsSL https://api.github.com/repos/XTLS/Xray-core/releases/latest \ | grep -Eo '"tag_name":\s*"v[^"]+"' | sed -E 's/.*"v([^"]+)".*/\1/' | head -n1)" || true @@ -353,6 +354,7 @@ download_singbox() { # Download sing-box core and install to outdir/sing-box local outdir="$1" ver="${SING_VER:-}" url tmp tarname="singbox.tar.gz" bin mkdir -p "$outdir" + if [[ -n "${SING_VER:-}" ]]; then ver="${SING_VER}"; fi if [[ -z "$ver" ]]; then ver="$(curl -fsSL https://api.github.com/repos/SagerNet/sing-box/releases/latest \ | grep -Eo '"tag_name":\s*"v[^"]+"' | sed -E 's/.*"v([^"]+)".*/\1/' | head -n1)" || true @@ -372,6 +374,22 @@ download_singbox() { install -Dm755 "$bin" "$outdir/sing-box" } +# ---- NEW: download_mihomo (REQUIRED in --netcore mode) ---- +download_mihomo() { + # Download mihomo into outroot/bin/mihomo/mihomo + local outroot="$1" + local url="" + if [[ "$RID_DIR" == "linux-arm64" ]]; then + url="https://raw.githubusercontent.com/2dust/v2rayN-core-bin/refs/heads/master/v2rayN-linux-arm64/bin/mihomo/mihomo" + else + url="https://raw.githubusercontent.com/2dust/v2rayN-core-bin/refs/heads/master/v2rayN-linux-64/bin/mihomo/mihomo" + fi + echo "[+] Download mihomo: $url" + mkdir -p "$outroot/bin/mihomo" + curl -fL "$url" -o "$outroot/bin/mihomo/mihomo" + chmod +x "$outroot/bin/mihomo/mihomo" || true +} + # Move geo files to a unified path: outroot/bin/xray/ unify_geo_layout() { local outroot="$1" @@ -451,7 +469,8 @@ download_v2rayn_bundle() { fi rm -f "$outroot/v2rayn.zip" 2>/dev/null || true - find "$outroot" -type d -name "mihomo" -prune -exec rm -rf {} + 2>/dev/null || true + # keep mihomo + # find "$outroot" -type d -name "mihomo" -prune -exec rm -rf {} + 2>/dev/null || true local nested_dir nested_dir="$(find "$outroot" -maxdepth 1 -type d -name 'v2rayN-linux-*' | head -n1 || true)" @@ -561,6 +580,8 @@ build_for_arch() { download_singbox "$WORKDIR/$PKGROOT/bin/sing_box" || echo "[!] sing-box download failed (skipped)" fi download_geo_assets "$WORKDIR/$PKGROOT" || echo "[!] Geo rules download failed (skipped)" + # ---- REQUIRED: always fetch mihomo in netcore mode, per-arch ---- + download_mihomo "$WORKDIR/$PKGROOT" || echo "[!] mihomo download failed (skipped)" fi # Tarball