mirror of
https://github.com/2dust/v2rayN.git
synced 2026-11-02 18:45:00 +03:00
Update loongarch64 build (#10487)
* Update loongarch64 build Signed-off-by: 吴小白 <296015668@qq.com> * Update GlobalHotKeys --------- Signed-off-by: 吴小白 <296015668@qq.com> Co-authored-by: 2dust <31833384+2dust@users.noreply.github.com>
This commit is contained in:
@@ -221,149 +221,45 @@ jobs:
|
|||||||
deb-loong64:
|
deb-loong64:
|
||||||
name: build and release deb loong64
|
name: build and release deb loong64
|
||||||
if: (github.event_name == 'workflow_dispatch' && inputs.release_tag != '') || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
|
if: (github.event_name == 'workflow_dispatch' && inputs.release_tag != '') || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
|
||||||
runs-on: ubuntu-26.04-arm
|
runs-on: ubuntu-26.04
|
||||||
env:
|
env:
|
||||||
RELEASE_TAG: ${{ case(inputs.release_tag != '', inputs.release_tag, github.ref_name) }}
|
RELEASE_TAG: ${{ case(inputs.release_tag != '', inputs.release_tag, github.ref_name) }}
|
||||||
QCOW2_URL: https://github.com/xujiegb/debian-loong64-qcow2/releases/download/13.5/debian13-loong64.qcow2
|
DOCKER_IMAGE: ghcr.io/loong64/debian:trixie
|
||||||
EFI_CODE_URL: https://github.com/xujiegb/debian-loong64-qcow2/releases/download/13.5/edk2-loongarch64-code.fd
|
|
||||||
EFI_VARS_URL: https://github.com/xujiegb/debian-loong64-qcow2/releases/download/13.5/edk2-loongarch64-vars.fd
|
|
||||||
QCOW2_IMAGE: debian13-loong64.qcow2
|
|
||||||
EFI_CODE: edk2-loongarch64-code.fd
|
|
||||||
EFI_VARS: edk2-loongarch64-vars.fd
|
|
||||||
QEMU_VERSION: 10.2.4
|
|
||||||
steps:
|
steps:
|
||||||
- name: Prepare host tools
|
- name: Checkout repo
|
||||||
shell: bash
|
uses: actions/checkout@v6
|
||||||
run: |
|
with:
|
||||||
set -euo pipefail
|
submodules: recursive
|
||||||
sudo apt-get update
|
fetch-depth: 0
|
||||||
sudo apt-get install -y git rsync qemu-utils qemu-system-common expect wget curl ca-certificates libfdt1 libglib2.0-0 libpixman-1-0 libslirp0 virtiofsd
|
- name: Setup QEMU
|
||||||
sudo ln -sf /usr/libexec/virtiofsd /usr/local/bin/virtiofsd
|
uses: docker/setup-qemu-action@v4
|
||||||
virtiofsd --version || virtiofsd --help | head
|
- name: Package DEB (Debian-family)
|
||||||
- name: Host clone repo
|
|
||||||
shell: bash
|
|
||||||
env: { GITHUB_TOKEN: "${{ github.token }}" }
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
rm -rf repo
|
|
||||||
git clone --no-single-branch --tags "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" repo
|
|
||||||
- name: Download QEMU prebuild
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
wget -O qemu-linux-arm64-v8.2.tar.gz "https://github.com/xujiegb/qemu-linux-prebuild/releases/download/${QEMU_VERSION}/qemu-linux-arm64-v8.2.tar.gz"
|
|
||||||
tar -xzf qemu-linux-arm64-v8.2.tar.gz
|
|
||||||
mkdir -p "$HOME/qemu-install"
|
|
||||||
rsync -a qemu-linux-arm64-v8.2/ "$HOME/qemu-install/"
|
|
||||||
"$HOME/qemu-install/bin/qemu-system-loongarch64" --version
|
|
||||||
- name: Download loong64 qcow2 and EFI firmware
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
wget -O "$QCOW2_IMAGE" "$QCOW2_URL"
|
|
||||||
wget -O "$EFI_CODE" "$EFI_CODE_URL"
|
|
||||||
wget -O "$EFI_VARS" "$EFI_VARS_URL"
|
|
||||||
qemu-img info "$QCOW2_IMAGE"
|
|
||||||
- name: Build loong64 DEB in VM through serial console
|
|
||||||
shell: bash
|
shell: bash
|
||||||
timeout-minutes: 180
|
timeout-minutes: 180
|
||||||
env: { RELEASE_TAG: "${{ env.RELEASE_TAG }}" }
|
env: { RELEASE_TAG: "${{ env.RELEASE_TAG }}" }
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
mkdir -p "$GITHUB_WORKSPACE/dist/deb-loong64"
|
docker run --rm \
|
||||||
|
--privileged \
|
||||||
export VIRTIOFSD_SOCKET="$RUNNER_TEMP/virtiofs-deb-loong64.sock"
|
--platform linux/loong64 \
|
||||||
rm -f "$VIRTIOFSD_SOCKET"
|
--env DEBIAN_FRONTEND=noninteractive \
|
||||||
|
--env DOTNET_EnableWriteXorExecute=0 \
|
||||||
sudo virtiofsd --socket-path="$VIRTIOFSD_SOCKET" --shared-dir="$GITHUB_WORKSPACE" --cache=auto &
|
--volume "${{ github.workspace }}:/root/v2rayN-src" \
|
||||||
|
--volume "$HOME/debbuild:/root/debbuild" \
|
||||||
VIRTIOFSD_PID=$!
|
--workdir /root/v2rayN-src \
|
||||||
trap 'sudo kill "$VIRTIOFSD_PID" 2>/dev/null || true; rm -f "$VIRTIOFSD_SOCKET"' EXIT
|
"$DOCKER_IMAGE" bash -c "
|
||||||
|
apt-get update && \
|
||||||
for i in {1..100}; do
|
apt-get install -y sudo git rsync findutils tar gzip unzip which curl jq wget file ca-certificates desktop-file-utils xdg-utils fakeroot dpkg-dev gcc make libc6-dev libgcc-s1 libstdc++6 zlib1g libatomic1 && \
|
||||||
[[ -S "$VIRTIOFSD_SOCKET" ]] && break
|
git config --global --add safe.directory /root/v2rayN-src && \
|
||||||
sleep 0.1
|
./package-debian-loong.sh ${RELEASE_TAG}"
|
||||||
done
|
- name: Collect DEBs into workspace
|
||||||
|
|
||||||
[[ -S "$VIRTIOFSD_SOCKET" ]] || { echo "virtiofsd socket not created"; exit 1; }
|
|
||||||
sudo chown "$USER:$(id -gn)" "$VIRTIOFSD_SOCKET" || true
|
|
||||||
sudo chmod 660 "$VIRTIOFSD_SOCKET" || true
|
|
||||||
expect <<'EOF'
|
|
||||||
log_user 1
|
|
||||||
set timeout -1
|
|
||||||
set release_tag $env(RELEASE_TAG)
|
|
||||||
set qemu_bin "$env(HOME)/qemu-install/bin/qemu-system-loongarch64"
|
|
||||||
set qemu_rom_dir "$env(HOME)/qemu-install/share/qemu"
|
|
||||||
set virtiofs_socket $env(VIRTIOFSD_SOCKET)
|
|
||||||
set qcow2 $env(QCOW2_IMAGE)
|
|
||||||
set efi_code $env(EFI_CODE)
|
|
||||||
set efi_vars $env(EFI_VARS)
|
|
||||||
proc wait_prompt {} {
|
|
||||||
expect {
|
|
||||||
-re "__CI_PROMPT__# " {}
|
|
||||||
timeout { exit 1 }
|
|
||||||
eof { exit 1 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
proc run_cmd {cmd} {
|
|
||||||
send -- "$cmd\r"
|
|
||||||
wait_prompt
|
|
||||||
}
|
|
||||||
spawn $qemu_bin \
|
|
||||||
-L $qemu_rom_dir \
|
|
||||||
-machine virt \
|
|
||||||
-accel tcg,thread=multi,tb-size=2048 \
|
|
||||||
-cpu la464 \
|
|
||||||
-m 9216 \
|
|
||||||
-object memory-backend-memfd,id=mem0,size=9216M,share=on \
|
|
||||||
-numa node,memdev=mem0 \
|
|
||||||
-smp 4 \
|
|
||||||
-drive if=pflash,format=raw,unit=0,file=$efi_code,readonly=on \
|
|
||||||
-drive if=pflash,format=raw,unit=1,file=$efi_vars \
|
|
||||||
-device virtio-blk-pci,drive=hd0,bootindex=1 \
|
|
||||||
-drive if=none,media=disk,id=hd0,file=$qcow2,format=qcow2 \
|
|
||||||
-netdev user,id=net0 \
|
|
||||||
-device virtio-net-pci-non-transitional,netdev=net0 \
|
|
||||||
-chardev socket,id=charfs0,path=$virtiofs_socket \
|
|
||||||
-device vhost-user-fs-pci,chardev=charfs0,tag=workspace \
|
|
||||||
-display none \
|
|
||||||
-serial stdio \
|
|
||||||
-monitor none
|
|
||||||
expect -re "login:|debian login:"
|
|
||||||
send -- "root\r"
|
|
||||||
expect -re "Password:|密码:|密码:"
|
|
||||||
send -- "password\r"
|
|
||||||
expect {
|
|
||||||
-re "# " {}
|
|
||||||
timeout { exit 1 }
|
|
||||||
eof { exit 1 }
|
|
||||||
}
|
|
||||||
send -- "export TERM=dumb; export PS1='__CI_PROMPT__# '\r"
|
|
||||||
wait_prompt
|
|
||||||
run_cmd "mkdir -p /workspace"
|
|
||||||
run_cmd "mount -t virtiofs workspace /workspace"
|
|
||||||
run_cmd "IFACE=\$(ip -o link show | awk -F': ' '\$2 != \"lo\" {print \$2; exit}') ; ip link set \$IFACE up || true"
|
|
||||||
run_cmd "dhclient \$IFACE || true"
|
|
||||||
run_cmd "printf 'nameserver 10.0.2.3\nnameserver 1.1.1.1\n' >/etc/resolv.conf"
|
|
||||||
run_cmd "apt-get update || apt-get update || apt-get update"
|
|
||||||
run_cmd "DEBIAN_FRONTEND=noninteractive apt-get install -y sudo git rsync findutils tar gzip unzip which curl jq wget file ca-certificates desktop-file-utils xdg-utils fakeroot dpkg-dev gcc make libc6-dev libgcc-s1 libstdc++6 zlib1g libatomic1 fuse3"
|
|
||||||
run_cmd "rm -rf /root/v2rayN-src"
|
|
||||||
run_cmd "rsync -a --info=progress2 /workspace/repo/ /root/v2rayN-src/"
|
|
||||||
run_cmd "cd /root/v2rayN-src && git config --global --add safe.directory /root/v2rayN-src"
|
|
||||||
run_cmd "cd /root/v2rayN-src && chmod 755 package-debian-loong.sh"
|
|
||||||
send -- "cd /root/v2rayN-src; cat >/tmp/run-loong-build.sh <<'SCRIPT'\nset +e\nset -o pipefail\nbash -x ./package-debian-loong.sh \"\$RELEASE_TAG\" 2>&1 | tee /tmp/build.log\nrc=\$?\nmkdir -p /workspace/dist/deb-loong64\ncp -av /root/debbuild/*.deb /workspace/dist/deb-loong64/ 2>/dev/null || true\necho __BUILD_DONE__\$rc\nSCRIPT\nRELEASE_TAG=\"$release_tag\" bash /tmp/run-loong-build.sh\r"
|
|
||||||
expect {
|
|
||||||
-re "__BUILD_DONE__0" { send -- "poweroff\r" }
|
|
||||||
default { exit 1 }
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
- name: Collect DEBs
|
|
||||||
shell: bash
|
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
|
||||||
mkdir -p "$GITHUB_WORKSPACE/dist/deb-loong64"
|
mkdir -p "$GITHUB_WORKSPACE/dist/deb-loong64"
|
||||||
|
rsync -av "$HOME/debbuild/" "$GITHUB_WORKSPACE/dist/deb-loong64/" || true
|
||||||
find "$GITHUB_WORKSPACE/dist/deb-loong64" -name "*.deb" -exec mv {} "$GITHUB_WORKSPACE/dist/deb-loong64/v2rayN-linux-loong64.deb" \; || true
|
find "$GITHUB_WORKSPACE/dist/deb-loong64" -name "*.deb" -exec mv {} "$GITHUB_WORKSPACE/dist/deb-loong64/v2rayN-linux-loong64.deb" \; || true
|
||||||
echo "==== Dist tree ===="
|
echo "==== Dist tree ===="
|
||||||
ls -R "$GITHUB_WORKSPACE/dist/deb-loong64"
|
ls -R "$GITHUB_WORKSPACE/dist/deb-loong64" || true
|
||||||
- name: Upload DEB artifact
|
- name: Upload DEB artifact
|
||||||
uses: actions/upload-artifact@v7
|
uses: actions/upload-artifact@v7
|
||||||
with: { name: release-deb-loong64, path: "dist/deb-loong64/**/*.deb", if-no-files-found: error }
|
with: { name: release-deb-loong64, path: "dist/deb-loong64/**/*.deb", if-no-files-found: error }
|
||||||
@@ -371,149 +267,43 @@ jobs:
|
|||||||
rpm-loong64:
|
rpm-loong64:
|
||||||
name: build and release rpm loong64
|
name: build and release rpm loong64
|
||||||
if: (github.event_name == 'workflow_dispatch' && inputs.release_tag != '') || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
|
if: (github.event_name == 'workflow_dispatch' && inputs.release_tag != '') || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
|
||||||
runs-on: ubuntu-26.04-arm
|
runs-on: ubuntu-26.04
|
||||||
env:
|
env:
|
||||||
RELEASE_TAG: ${{ case(inputs.release_tag != '', inputs.release_tag, github.ref_name) }}
|
RELEASE_TAG: ${{ case(inputs.release_tag != '', inputs.release_tag, github.ref_name) }}
|
||||||
QCOW2_URL: https://github.com/xujiegb/fedora-loong64-qcow2/releases/download/43/fedora43-loong64.qcow2
|
DOCKER_IMAGE: ghcr.io/fedora-remix-loongarch/mini-image:f43
|
||||||
EFI_CODE_URL: https://github.com/xujiegb/fedora-loong64-qcow2/releases/download/43/edk2-loongarch64-code.fd
|
|
||||||
EFI_VARS_URL: https://github.com/xujiegb/fedora-loong64-qcow2/releases/download/43/edk2-loongarch64-vars.fd
|
|
||||||
QCOW2_IMAGE: fedora43-loong64.qcow2
|
|
||||||
EFI_CODE: edk2-loongarch64-code.fd
|
|
||||||
EFI_VARS: edk2-loongarch64-vars.fd
|
|
||||||
QEMU_VERSION: 10.2.4
|
|
||||||
steps:
|
steps:
|
||||||
- name: Prepare host tools
|
- name: Checkout repo
|
||||||
shell: bash
|
uses: actions/checkout@v6
|
||||||
run: |
|
with:
|
||||||
set -euo pipefail
|
submodules: recursive
|
||||||
sudo apt-get update
|
fetch-depth: 0
|
||||||
sudo apt-get install -y git rsync qemu-utils qemu-system-common expect wget curl ca-certificates libfdt1 libglib2.0-0 libpixman-1-0 libslirp0 virtiofsd
|
- name: Setup QEMU
|
||||||
sudo ln -sf /usr/libexec/virtiofsd /usr/local/bin/virtiofsd
|
uses: docker/setup-qemu-action@v4
|
||||||
virtiofsd --version || virtiofsd --help | head
|
- name: Build loong64 RPM
|
||||||
- name: Host clone repo
|
|
||||||
shell: bash
|
|
||||||
env: { GITHUB_TOKEN: "${{ github.token }}" }
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
rm -rf repo
|
|
||||||
git clone --no-single-branch --tags "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" repo
|
|
||||||
- name: Download QEMU prebuild
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
wget -O qemu-linux-arm64-v8.2.tar.gz "https://github.com/xujiegb/qemu-linux-prebuild/releases/download/${QEMU_VERSION}/qemu-linux-arm64-v8.2.tar.gz"
|
|
||||||
tar -xzf qemu-linux-arm64-v8.2.tar.gz
|
|
||||||
mkdir -p "$HOME/qemu-install"
|
|
||||||
rsync -a qemu-linux-arm64-v8.2/ "$HOME/qemu-install/"
|
|
||||||
"$HOME/qemu-install/bin/qemu-system-loongarch64" --version
|
|
||||||
- name: Download loong64 qcow2 and EFI firmware
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
set -euo pipefail
|
|
||||||
wget -O "$QCOW2_IMAGE" "$QCOW2_URL"
|
|
||||||
wget -O "$EFI_CODE" "$EFI_CODE_URL"
|
|
||||||
wget -O "$EFI_VARS" "$EFI_VARS_URL"
|
|
||||||
qemu-img info "$QCOW2_IMAGE"
|
|
||||||
- name: Build loong64 RPM in VM through serial console
|
|
||||||
shell: bash
|
shell: bash
|
||||||
timeout-minutes: 180
|
timeout-minutes: 180
|
||||||
env: { RELEASE_TAG: "${{ env.RELEASE_TAG }}" }
|
env: { RELEASE_TAG: "${{ env.RELEASE_TAG }}" }
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
mkdir -p "$GITHUB_WORKSPACE/dist/rpm-loong64"
|
docker run --rm \
|
||||||
|
--privileged \
|
||||||
export VIRTIOFSD_SOCKET="$RUNNER_TEMP/virtiofs-rpm-loong64.sock"
|
--platform linux/loong64 \
|
||||||
rm -f "$VIRTIOFSD_SOCKET"
|
--env DOTNET_EnableWriteXorExecute=0 \
|
||||||
|
--volume "${{ github.workspace }}:/root/v2rayN-src" \
|
||||||
sudo virtiofsd --socket-path="$VIRTIOFSD_SOCKET" --shared-dir="$GITHUB_WORKSPACE" --cache=auto &
|
--volume "$HOME/rpmbuild/RPMS:/root/rpmbuild/RPMS" \
|
||||||
|
--workdir /root/v2rayN-src \
|
||||||
VIRTIOFSD_PID=$!
|
"$DOCKER_IMAGE" bash -c "
|
||||||
trap 'sudo kill "$VIRTIOFSD_PID" 2>/dev/null || true; rm -f "$VIRTIOFSD_SOCKET"' EXIT
|
dnf -y makecache && \
|
||||||
|
dnf -y install sudo git rpm-build rpmdevtools dnf-plugins-core rsync findutils tar gzip unzip which curl jq file ca-certificates fuse3 && \
|
||||||
for i in {1..100}; do
|
git config --global --add safe.directory /root/v2rayN-src && \
|
||||||
[[ -S "$VIRTIOFSD_SOCKET" ]] && break
|
./package-rhel-loong.sh ${RELEASE_TAG}"
|
||||||
sleep 0.1
|
- name: Collect RPMs into workspace
|
||||||
done
|
|
||||||
|
|
||||||
[[ -S "$VIRTIOFSD_SOCKET" ]] || { echo "virtiofsd socket not created"; exit 1; }
|
|
||||||
sudo chown "$USER:$(id -gn)" "$VIRTIOFSD_SOCKET" || true
|
|
||||||
sudo chmod 660 "$VIRTIOFSD_SOCKET" || true
|
|
||||||
expect <<'EOF'
|
|
||||||
log_user 1
|
|
||||||
set timeout -1
|
|
||||||
set release_tag $env(RELEASE_TAG)
|
|
||||||
set qemu_bin "$env(HOME)/qemu-install/bin/qemu-system-loongarch64"
|
|
||||||
set qemu_rom_dir "$env(HOME)/qemu-install/share/qemu"
|
|
||||||
set virtiofs_socket $env(VIRTIOFSD_SOCKET)
|
|
||||||
set qcow2 $env(QCOW2_IMAGE)
|
|
||||||
set efi_code $env(EFI_CODE)
|
|
||||||
set efi_vars $env(EFI_VARS)
|
|
||||||
proc wait_prompt {} {
|
|
||||||
expect {
|
|
||||||
-re "__CI_PROMPT__# " {}
|
|
||||||
timeout { exit 1 }
|
|
||||||
eof { exit 1 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
proc run_cmd {cmd} {
|
|
||||||
send -- "$cmd\r"
|
|
||||||
wait_prompt
|
|
||||||
}
|
|
||||||
spawn $qemu_bin \
|
|
||||||
-L $qemu_rom_dir \
|
|
||||||
-machine virt \
|
|
||||||
-accel tcg,thread=multi,tb-size=2048 \
|
|
||||||
-cpu la464 \
|
|
||||||
-m 9216 \
|
|
||||||
-object memory-backend-memfd,id=mem0,size=9216M,share=on \
|
|
||||||
-numa node,memdev=mem0 \
|
|
||||||
-smp 4 \
|
|
||||||
-drive if=pflash,format=raw,unit=0,file=$efi_code,readonly=on \
|
|
||||||
-drive if=pflash,format=raw,unit=1,file=$efi_vars \
|
|
||||||
-device virtio-blk-pci,drive=hd0,bootindex=1 \
|
|
||||||
-drive if=none,media=disk,id=hd0,file=$qcow2,format=qcow2 \
|
|
||||||
-netdev user,id=net0 \
|
|
||||||
-device virtio-net-pci-non-transitional,netdev=net0 \
|
|
||||||
-chardev socket,id=charfs0,path=$virtiofs_socket \
|
|
||||||
-device vhost-user-fs-pci,chardev=charfs0,tag=workspace \
|
|
||||||
-display none \
|
|
||||||
-serial stdio \
|
|
||||||
-monitor none
|
|
||||||
expect -re "login:|fedora login:"
|
|
||||||
send -- "root\r"
|
|
||||||
expect -re "Password:|密码:|密码:"
|
|
||||||
send -- "password\r"
|
|
||||||
expect {
|
|
||||||
-re "# " {}
|
|
||||||
timeout { exit 1 }
|
|
||||||
eof { exit 1 }
|
|
||||||
}
|
|
||||||
send -- "export TERM=dumb; export PS1='__CI_PROMPT__# '\r"
|
|
||||||
wait_prompt
|
|
||||||
run_cmd "mkdir -p /workspace"
|
|
||||||
run_cmd "mount -t virtiofs workspace /workspace"
|
|
||||||
run_cmd "IFACE=\$(ip -o link show | awk -F': ' '\$2 != \"lo\" {print \$2; exit}') ; ip link set \$IFACE up || true"
|
|
||||||
run_cmd "dhclient \$IFACE || true"
|
|
||||||
run_cmd "printf 'nameserver 10.0.2.3\nnameserver 1.1.1.1\n' >/etc/resolv.conf"
|
|
||||||
run_cmd "dnf -y makecache || dnf -y makecache || dnf -y makecache"
|
|
||||||
run_cmd "dnf -y install sudo git rpm-build rpmdevtools dnf-plugins-core rsync findutils tar gzip unzip which curl jq file ca-certificates fuse3 --nogpgcheck"
|
|
||||||
run_cmd "rm -rf /root/v2rayN-src"
|
|
||||||
run_cmd "rsync -a --info=progress2 /workspace/repo/ /root/v2rayN-src/"
|
|
||||||
run_cmd "cd /root/v2rayN-src && git config --global --add safe.directory /root/v2rayN-src"
|
|
||||||
run_cmd "cd /root/v2rayN-src && chmod 755 package-rhel-loong.sh"
|
|
||||||
send -- "cd /root/v2rayN-src; cat >/tmp/run-loong-rpm-build.sh <<'SCRIPT'\nset +e\nset -o pipefail\nbash -x ./package-rhel-loong.sh \"\$RELEASE_TAG\" 2>&1 | tee /tmp/build.log\nrc=\$?\nmkdir -p /workspace/dist/rpm-loong64\nfind /root/rpmbuild/RPMS -name '*.rpm' -exec cp -av {} /workspace/dist/rpm-loong64/ \\; 2>/dev/null || true\necho __BUILD_DONE__\$rc\nSCRIPT\nRELEASE_TAG=\"$release_tag\" bash /tmp/run-loong-rpm-build.sh\r"
|
|
||||||
expect {
|
|
||||||
-re "__BUILD_DONE__0" { send -- "poweroff\r" }
|
|
||||||
default { exit 1 }
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
- name: Collect RPMs
|
|
||||||
shell: bash
|
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
|
||||||
mkdir -p "$GITHUB_WORKSPACE/dist/rpm-loong64"
|
mkdir -p "$GITHUB_WORKSPACE/dist/rpm-loong64"
|
||||||
|
rsync -av "$HOME/rpmbuild/RPMS/" "$GITHUB_WORKSPACE/dist/rpm-loong64/" || true
|
||||||
find "$GITHUB_WORKSPACE/dist/rpm-loong64" -name "*.loongarch64.rpm" -exec mv {} "$GITHUB_WORKSPACE/dist/rpm-loong64/v2rayN-linux-rhel-loong64.rpm" \; || true
|
find "$GITHUB_WORKSPACE/dist/rpm-loong64" -name "*.loongarch64.rpm" -exec mv {} "$GITHUB_WORKSPACE/dist/rpm-loong64/v2rayN-linux-rhel-loong64.rpm" \; || true
|
||||||
echo "==== Dist tree ===="
|
echo "==== Dist tree ===="
|
||||||
ls -R "$GITHUB_WORKSPACE/dist/rpm-loong64"
|
ls -R "$GITHUB_WORKSPACE/dist/rpm-loong64" || true
|
||||||
- name: Upload RPM artifact
|
- name: Upload RPM artifact
|
||||||
uses: actions/upload-artifact@v7
|
uses: actions/upload-artifact@v7
|
||||||
with: { name: release-rpm-loong64, path: "dist/rpm-loong64/**/*.rpm", if-no-files-found: error }
|
with: { name: release-rpm-loong64, path: "dist/rpm-loong64/**/*.rpm", if-no-files-found: error }
|
||||||
|
|||||||
Regular → Executable
+2
@@ -220,6 +220,8 @@ apply_channel_or_keep() {
|
|||||||
VERSION="${VERSION#v}"
|
VERSION="${VERSION#v}"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
git remote add upstream https://github.com/2dust/v2rayN || true
|
||||||
|
git fetch upstream
|
||||||
|
|
||||||
echo "[*] Resolving ${ch} tag from GitHub releases..."
|
echo "[*] Resolving ${ch} tag from GitHub releases..."
|
||||||
|
|
||||||
|
|||||||
Regular → Executable
Regular → Executable
Regular → Executable
+5
-3
@@ -73,12 +73,12 @@ detect_environment() {
|
|||||||
HOST_ARCH="$(uname -m)"
|
HOST_ARCH="$(uname -m)"
|
||||||
|
|
||||||
case "$OS_ID" in
|
case "$OS_ID" in
|
||||||
rhel|rocky|almalinux|fedora|centos)
|
rhel|rocky|almalinux|fedora|centos|anolis)
|
||||||
echo "Detected supported system: ${OS_NAME:-$OS_ID} ${OS_VERSION_ID:-}"
|
echo "Detected supported system: ${OS_NAME:-$OS_ID} ${OS_VERSION_ID:-}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
die "Unsupported system: ${OS_NAME:-unknown} (${OS_ID:-unknown}).
|
die "Unsupported system: ${OS_NAME:-unknown} (${OS_ID:-unknown}).
|
||||||
This script only supports: RHEL / Rocky / AlmaLinux / Fedora / CentOS."
|
This script only supports: RHEL / Rocky / AlmaLinux / Fedora / CentOS / Anolis OS."
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -216,6 +216,8 @@ apply_channel_or_keep() {
|
|||||||
VERSION="${VERSION#v}"
|
VERSION="${VERSION#v}"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
git remote add upstream https://github.com/2dust/v2rayN || true
|
||||||
|
git fetch upstream
|
||||||
|
|
||||||
echo "[*] Resolving ${ch} tag from GitHub releases..."
|
echo "[*] Resolving ${ch} tag from GitHub releases..."
|
||||||
|
|
||||||
@@ -521,7 +523,7 @@ Requires: freetype >= 2.13
|
|||||||
%description
|
%description
|
||||||
v2rayN Linux for Red Hat Enterprise Linux
|
v2rayN Linux for Red Hat Enterprise Linux
|
||||||
Support vless / vmess / Trojan / http / socks / Anytls / Hysteria2 / Shadowsocks / tuic / WireGuard
|
Support vless / vmess / Trojan / http / socks / Anytls / Hysteria2 / Shadowsocks / tuic / WireGuard
|
||||||
Support Red Hat Enterprise Linux / Fedora Linux / Rocky Linux / AlmaLinux / CentOS
|
Support Red Hat Enterprise Linux / Fedora Linux / Rocky Linux / AlmaLinux / CentOS / Anolis OS
|
||||||
For more information, Please visit our website
|
For more information, Please visit our website
|
||||||
https://github.com/2dust/v2rayN
|
https://github.com/2dust/v2rayN
|
||||||
|
|
||||||
|
|||||||
Regular → Executable
Regular → Executable
Reference in New Issue
Block a user