Update On Tue Nov 11 19:39:22 CET 2025

This commit is contained in:
github-action[bot]
2025-11-11 19:39:23 +01:00
parent 77af742bd1
commit 923627574b
193 changed files with 19026 additions and 7809 deletions

View File

@@ -15,7 +15,8 @@ env:
TZ: Asia/Shanghai
passwall2: ${{ github.repository }}
packages: xiaorouji/openwrt-passwall-packages
package_names: "chinadns-ng geoview hysteria naiveproxy tcping tuic-client shadowsocks-rust shadowsocksr-libev simple-obfs sing-box v2ray-geodata v2ray-plugin xray-core"
package_release: "chinadns-ng geoview hysteria naiveproxy tcping tuic-client shadowsocks-rust shadowsocksr-libev simple-obfs sing-box v2ray-geoip v2ray-geosite v2ray-plugin xray-core"
jobs:
job_check:
@@ -35,18 +36,29 @@ jobs:
- name: Check version
id: check_version
env:
url_tags: https://api.github.com/repos/${{ env.passwall2 }}/tags
url_tags: https://api.github.com/repos/${{ env.passwall2 }}/releases/latest
run: |
cd luci-app-passwall2
latest_version=$(awk -F ':=' '/^PKG_VERSION:=|^PKG_RELEASE:=/ {print $2}' Makefile | sed ':a;N;s/\$(PKG_VERSION)-//;s/\n$//;s/\n/-/;ba')
has_update=$([ -z "$(wget -qO- -t1 -T2 ${{env.url_tags}} | grep \"${latest_version}\")" ] && echo true || echo false)
prerelease=$([ "${{ github.ref_name }}" == "main" ] && echo false || echo true)
echo "latest_version=${latest_version}" >> $GITHUB_OUTPUT
echo "has_update=${has_update}" >> $GITHUB_OUTPUT
prerelease=$([ "${{ github.ref_name }}" == "main" ] && echo false || echo true)
echo "prerelease=${prerelease}" >> $GITHUB_OUTPUT
echo "latest_version: ${latest_version}"
echo "has_update: ${has_update}"
echo "prerelease: ${prerelease}"
remote_latest_version=$(wget -qO- -t1 -T2 ${{env.url_tags}} | jq -r '.tag_name')
if [ -z "$remote_latest_version" ] || [ "$remote_latest_version" = "null" ]; then
echo "Failed to fetch remote tags"
echo "has_update=true" >> $GITHUB_OUTPUT
exit 0
fi
echo "Remote latest: $remote_latest_version"
if [ "$latest_version" = "$remote_latest_version" ]; then
echo "has_update=false" >> $GITHUB_OUTPUT
else
echo "has_update=true" >> $GITHUB_OUTPUT
fi
- name: Prepare release
if: steps.check_version.outputs.has_update == 'true'
@@ -70,7 +82,7 @@ jobs:
job_build_passwall2:
name: Build passwall2 [Luci ${{ matrix.luci_ver }}]
name: Build passwall2 [${{ matrix.ver }}]
needs: job_check
if: needs.job_check.outputs.has_update == 'true'
runs-on: ubuntu-latest
@@ -78,13 +90,13 @@ jobs:
fail-fast: false
matrix:
include:
- sdk_ver: "21.02"
luci_ver: "19.07"
sdk_url: https://downloads.openwrt.org/releases/21.02.7/targets/x86/64/openwrt-sdk-21.02.7-x86-64_gcc-8.4.0_musl.Linux-x86_64.tar.xz
- platform: x86_64
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/x86/64/openwrt-sdk-24.10.4-x86-64_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- sdk_ver: "24.10"
luci_ver: "24.10"
sdk_url: https://downloads.openwrt.org/releases/24.10.0/targets/x86/64/openwrt-sdk-24.10.0-x86-64_gcc-13.3.0_musl.Linux-x86_64.tar.zst
- platform: x86_64
url_sdk: https://downloads.openwrt.org/snapshots/targets/x86/64/openwrt-sdk-x86-64_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
steps:
- name: Install packages
run: |
@@ -103,10 +115,9 @@ jobs:
sudo -E apt-get -qq clean
- name: Initialization environment
if: steps.cache-sdk.outputs.cache-hit != 'true'
run: |
wget ${{ matrix.sdk_url }}
file_name=$(echo ${{ matrix.sdk_url }} | awk -F/ '{print $NF}')
wget ${{ matrix.url_sdk }}
file_name=$(echo ${{ matrix.url_sdk }} | awk -F/ '{print $NF}')
mkdir sdk
if [[ $file_name == *.tar.xz ]]; then
tar -xJf $file_name -C ./sdk --strip-components=1
@@ -118,15 +129,13 @@ jobs:
fi
cd sdk
cat > feeds.conf.default << EOF
src-git passwall_packages https://github.com/${{ env.packages }}.git;main
cat > feeds.tmp <<'EOF'
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall-packages.git;main
src-git passwall2 https://github.com/${{ env.passwall2 }}.git;${{ github.ref_name }}
src-git base https://github.com/openwrt/openwrt.git;openwrt-${{ matrix.sdk_ver }}
src-git packages https://github.com/openwrt/packages.git;openwrt-${{ matrix.sdk_ver }}
src-git luci https://github.com/openwrt/luci.git;openwrt-${{ matrix.luci_ver }}
src-git routing https://github.com/openwrt/routing.git;openwrt-${{ matrix.sdk_ver }}
src-git telephony https://github.com/openwrt/telephony.git;openwrt-${{ matrix.sdk_ver }}
EOF
cat feeds.conf.default >> feeds.tmp
mv feeds.tmp feeds.conf.default
./scripts/feeds update -a
./scripts/feeds install -a
@@ -165,13 +174,10 @@ jobs:
make defconfig
echo "make package/luci-app-passwall2/{clean,compile} -j$(nproc)"
make package/luci-app-passwall2/{clean,compile} -j$(nproc) V=s
mv bin/packages/x86_64/passwall2/ ../
mkdir upload
mv bin/packages/*/passwall2/luci-* upload/
make clean
rm .config .config.old
rm -rf feeds/passwall2 feeds/passwall2.*
cd ../passwall2
for i in $(ls); do mv $i luci-${{ matrix.luci_ver }}_$i; done
cd ..
cd upload
echo "status=success" >> $GITHUB_OUTPUT
echo "FIRMWARE=$PWD" >> $GITHUB_ENV
@@ -182,89 +188,163 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{needs.job_check.outputs.passwall2_version}}
files: ${{ env.FIRMWARE }}/passwall2/*.ipk
files: ${{ env.FIRMWARE }}/*
job_auto_compile:
if: ${{ needs.job_check.outputs.has_update == 'true' && needs.job_check.outputs.prerelease == 'false' }}
needs: job_check
runs-on: ubuntu-latest
name: build (${{ matrix.platform }})
name: build (${{ matrix.ver }}-${{ matrix.platform }})
strategy:
fail-fast: false
matrix:
include:
- platform: x86_64
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/x86/64/openwrt-sdk-24.10.0-x86-64_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/x86/64/openwrt-sdk-24.10.4-x86-64_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: aarch64_generic
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/rockchip/armv8/openwrt-sdk-24.10.0-rockchip-armv8_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/rockchip/armv8/openwrt-sdk-24.10.4-rockchip-armv8_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: aarch64_cortex-a53
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/mvebu/cortexa53/openwrt-sdk-24.10.0-mvebu-cortexa53_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/mvebu/cortexa53/openwrt-sdk-24.10.4-mvebu-cortexa53_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: aarch64_cortex-a72
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/mvebu/cortexa72/openwrt-sdk-24.10.0-mvebu-cortexa72_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/mvebu/cortexa72/openwrt-sdk-24.10.4-mvebu-cortexa72_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: arm_cortex-a5_vfpv4
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/at91/sama5/openwrt-sdk-24.10.0-at91-sama5_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/at91/sama5/openwrt-sdk-24.10.4-at91-sama5_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: arm_cortex-a7
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/mediatek/mt7629/openwrt-sdk-24.10.0-mediatek-mt7629_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/mediatek/mt7629/openwrt-sdk-24.10.4-mediatek-mt7629_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: arm_cortex-a7_neon-vfpv4
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/sunxi/cortexa7/openwrt-sdk-24.10.0-sunxi-cortexa7_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/sunxi/cortexa7/openwrt-sdk-24.10.4-sunxi-cortexa7_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: arm_cortex-a8_vfpv3
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/sunxi/cortexa8/openwrt-sdk-24.10.0-sunxi-cortexa8_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/sunxi/cortexa8/openwrt-sdk-24.10.4-sunxi-cortexa8_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: arm_cortex-a9
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/bcm53xx/generic/openwrt-sdk-24.10.0-bcm53xx-generic_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/bcm53xx/generic/openwrt-sdk-24.10.4-bcm53xx-generic_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: arm_cortex-a9_neon
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/zynq/generic/openwrt-sdk-24.10.0-zynq-generic_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/zynq/generic/openwrt-sdk-24.10.4-zynq-generic_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: arm_cortex-a9_vfpv3-d16
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/mvebu/cortexa9/openwrt-sdk-24.10.0-mvebu-cortexa9_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/mvebu/cortexa9/openwrt-sdk-24.10.4-mvebu-cortexa9_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: arm_cortex-a15_neon-vfpv4
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/ipq806x/generic/openwrt-sdk-24.10.0-ipq806x-generic_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/ipq806x/generic/openwrt-sdk-24.10.4-ipq806x-generic_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: mips_24kc
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/ath79/generic/openwrt-sdk-24.10.0-ath79-generic_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/ath79/generic/openwrt-sdk-24.10.4-ath79-generic_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: mips_4kec
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/realtek/rtl838x/openwrt-sdk-24.10.0-realtek-rtl838x_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/realtek/rtl838x/openwrt-sdk-24.10.4-realtek-rtl838x_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: mips_mips32
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/bcm53xx/generic/openwrt-sdk-24.10.0-bcm53xx-generic_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/bcm53xx/generic/openwrt-sdk-24.10.4-bcm53xx-generic_gcc-13.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "ipk"
- platform: mipsel_24kc
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/ramips/rt288x/openwrt-sdk-24.10.0-ramips-rt288x_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/ramips/rt288x/openwrt-sdk-24.10.4-ramips-rt288x_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: mipsel_74kc
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/ramips/rt3883/openwrt-sdk-24.10.0-ramips-rt3883_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/ramips/rt3883/openwrt-sdk-24.10.4-ramips-rt3883_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: mipsel_mips32
url_sdk: https://downloads.openwrt.org/releases/24.10.0/targets/bcm47xx/generic/openwrt-sdk-24.10.0-bcm47xx-generic_gcc-13.3.0_musl.Linux-x86_64.tar.zst
sdk_ver: "24.10"
url_sdk: https://downloads.openwrt.org/releases/24.10.4/targets/bcm47xx/generic/openwrt-sdk-24.10.4-bcm47xx-generic_gcc-13.3.0_musl.Linux-x86_64.tar.zst
ver: "ipk"
- platform: x86_64
url_sdk: https://downloads.openwrt.org/snapshots/targets/x86/64/openwrt-sdk-x86-64_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
- platform: aarch64_generic
url_sdk: https://downloads.openwrt.org/snapshots/targets/rockchip/armv8/openwrt-sdk-rockchip-armv8_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
- platform: aarch64_cortex-a53
url_sdk: https://downloads.openwrt.org/snapshots/targets/mvebu/cortexa53/openwrt-sdk-mvebu-cortexa53_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
- platform: aarch64_cortex-a72
url_sdk: https://downloads.openwrt.org/snapshots/targets/mvebu/cortexa72/openwrt-sdk-mvebu-cortexa72_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
- platform: arm_cortex-a5_vfpv4
url_sdk: https://downloads.openwrt.org/snapshots/targets/at91/sama5/openwrt-sdk-at91-sama5_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: arm_cortex-a7
url_sdk: https://downloads.openwrt.org/snapshots/targets/mediatek/mt7629/openwrt-sdk-mediatek-mt7629_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: arm_cortex-a7_neon-vfpv4
url_sdk: https://downloads.openwrt.org/snapshots/targets/sunxi/cortexa7/openwrt-sdk-sunxi-cortexa7_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: arm_cortex-a8_vfpv3
url_sdk: https://downloads.openwrt.org/snapshots/targets/sunxi/cortexa8/openwrt-sdk-sunxi-cortexa8_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: arm_cortex-a9
url_sdk: https://downloads.openwrt.org/snapshots/targets/bcm53xx/generic/openwrt-sdk-bcm53xx-generic_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: arm_cortex-a9_neon
url_sdk: https://downloads.openwrt.org/snapshots/targets/zynq/generic/openwrt-sdk-zynq-generic_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: arm_cortex-a9_vfpv3-d16
url_sdk: https://downloads.openwrt.org/snapshots/targets/mvebu/cortexa9/openwrt-sdk-mvebu-cortexa9_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: arm_cortex-a15_neon-vfpv4
url_sdk: https://downloads.openwrt.org/snapshots/targets/ipq806x/generic/openwrt-sdk-ipq806x-generic_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: mips_24kc
url_sdk: https://downloads.openwrt.org/snapshots/targets/ath79/generic/openwrt-sdk-ath79-generic_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
- platform: mips_4kec
url_sdk: https://downloads.openwrt.org/snapshots/targets/realtek/rtl838x/openwrt-sdk-realtek-rtl838x_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
- platform: mips_mips32
url_sdk: https://downloads.openwrt.org/snapshots/targets/bcm53xx/generic/openwrt-sdk-bcm53xx-generic_gcc-14.3.0_musl_eabi.Linux-x86_64.tar.zst
ver: "apk"
- platform: mipsel_24kc
url_sdk: https://downloads.openwrt.org/snapshots/targets/ramips/rt288x/openwrt-sdk-ramips-rt288x_gcc-14.2.0_musl.Linux-x86_64.tar.zst
ver: "apk"
- platform: mipsel_74kc
url_sdk: https://downloads.openwrt.org/snapshots/targets/ramips/rt3883/openwrt-sdk-ramips-rt3883_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
- platform: mipsel_mips32
url_sdk: https://downloads.openwrt.org/snapshots/targets/bcm47xx/generic/openwrt-sdk-bcm47xx-generic_gcc-14.3.0_musl.Linux-x86_64.tar.zst
ver: "apk"
steps:
- name: Initialization ${{ matrix.platform }} compile environment
@@ -305,15 +385,13 @@ jobs:
- name: ${{ matrix.platform }} feeds configuration packages
run: |
cd sdk
cat > feeds.conf.default << EOF
src-git passwall_packages https://github.com/${{ env.packages }}.git;main
cat > feeds.tmp <<'EOF'
src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall-packages.git;main
src-git passwall2 https://github.com/${{ env.passwall2 }}.git;${{ github.ref_name }}
src-git base https://github.com/openwrt/openwrt.git;openwrt-${{ matrix.sdk_ver }}
src-git packages https://github.com/openwrt/packages.git;openwrt-${{ matrix.sdk_ver }}
src-git luci https://github.com/openwrt/luci.git;openwrt-${{ matrix.sdk_ver }}
src-git routing https://github.com/openwrt/routing.git;openwrt-${{ matrix.sdk_ver }}
src-git telephony https://github.com/openwrt/telephony.git;openwrt-${{ matrix.sdk_ver }}
EOF
cat feeds.conf.default >> feeds.tmp
mv feeds.tmp feeds.conf.default
./scripts/feeds update -a
./scripts/feeds install -a
@@ -372,30 +450,19 @@ jobs:
make defconfig
- name: ${{ matrix.platform }} download
run: |
cd sdk
make download -j$(nproc)
find dl -size -1024c -exec ls -l {} \;
- name: ${{ matrix.platform }} compile
id: compile
run: |
cd sdk
make package/feeds/passwall_packages/chinadns-ng/compile -j$(nproc) V=s
make package/feeds/passwall_packages/geoview/compile -j$(nproc) V=s
make package/feeds/passwall_packages/tcping/compile -j$(nproc) V=s
make package/feeds/passwall_packages/xray-core/compile -j$(nproc) V=s
make package/feeds/passwall_packages/v2ray-geodata/compile -j$(nproc) V=s
make package/feeds/passwall_packages/hysteria/compile -j$(nproc) V=s
make package/feeds/passwall_packages/naiveproxy/compile -j$(nproc) V=s
make package/feeds/passwall_packages/shadowsocks-rust/compile -j$(nproc) V=s
make package/feeds/passwall_packages/shadowsocksr-libev/compile -j$(nproc) V=s
make package/feeds/passwall_packages/simple-obfs/compile -j$(nproc) V=s
make package/feeds/passwall_packages/sing-box/compile -j$(nproc) V=s
make package/feeds/passwall_packages/tuic-client/compile -j$(nproc) V=s
make package/feeds/passwall_packages/v2ray-plugin/compile -j$(nproc) V=s
for package in ${{ env.package_names }}; do
if [ -d "feeds/passwall_packages/$package" ]; then
echo "-----------begin compile $package ---------------"
sleep 10s
make package/$package/compile -j$(nproc) V=s
echo "-----------compiled $package ---------------"
echo ""
fi
done
echo "status=success" >> $GITHUB_OUTPUT
@@ -404,9 +471,28 @@ jobs:
if: steps.compile.outputs.status == 'success'
run: |
cd sdk
mkdir upload
zip -jr upload/passwall_packages_ipk_${{ matrix.platform }}.zip bin/packages/*/passwall_packages/*.ipk
mkdir tmp_upload
shopt -s nullglob
for src_dir in bin/packages/*/{packages,passwall_packages}; do
[[ -d "$src_dir" ]] || continue
echo "Scanning: $src_dir"
for prefix in ${{ env.package_release }}; do
for file in "$src_dir"/"$prefix"*; do
[[ -f "$file" ]] || continue
filename=$(basename "$file")
echo " Found: $filename"
cp -r "$file" "tmp_upload/"
done
done
done
mkdir upload
zip -jr upload/passwall_packages_${{ matrix.ver }}_${{ matrix.platform }}.zip tmp_upload/*
echo "FIRMWARE=$PWD" >> $GITHUB_ENV
echo "status=success" >> $GITHUB_OUTPUT
@@ -425,7 +511,7 @@ jobs:
echo "**package name**|**package version**" >> release.txt
echo "-|-" >> release.txt
pkgs=$(ls feeds/passwall_packages -I v2ray-geodata | grep -E "chinadns-ng|geoview|tcping|xray-core|hysteria|naiveproxy|shadowsocks-rust|shadowsocksr-libev|simple-obfs|sing-box|tuic-client|v2ray-plugin")
pkgs=$(ls feeds/passwall_packages -I v2ray-geodata | grep -E "$(echo "${{ env.package_names }}" | sed 's/ /|/g')")
for pkg in $pkgs; do
version=$(awk -F ':=' '/PKG_VERSION:=/{print $2}' feeds/passwall_packages/$pkg/Makefile | sed 's/\r//g')
[ -z "${version}" ] && version=$(awk -F ':=' '/PKG_SOURCE_DATE:=/{print $2}' feeds/passwall_packages/$pkg/Makefile | sed 's/\r//g')

View File

@@ -177,13 +177,13 @@ local api = require "luci.passwall2.api"
<div id="add_link_div">
<div id="add_link_modal_container">
<h3><%:Add the node via the link%></h3>
<div class="cbi-value">
<div class="value-custom">
<textarea id="nodes_link" rows="10"></textarea>
<p id="nodes_link_text"><%:Enter share links, one per line. Subscription links are not supported!%></p>
</div>
<div class="cbi-value modal-center">
<label class="cbi-value-title"><%:Group Name%></label>
<div class="cbi-value-field">
<div class="value-custom">
<div class="value-field-custom">
<label class="value-title-custom"><%:Group Name%></label>
<div id="addlink_group_custom" class="custom-dropdown">
<div class="selected-display">
<span class="text"><%:default%></span>
@@ -253,13 +253,12 @@ local api = require "luci.passwall2.api"
padding: 5px;
border: 1px solid #ccc;
border-radius: 5px;
margin-bottom: -10px;
}
#nodes_link_text {
color: red;
font-size: 14px;
margin-top: 0;
margin-top: 5px;
text-align: center;
width: 100%;
}
@@ -272,43 +271,40 @@ local api = require "luci.passwall2.api"
margin-top: 10px;
}
#add_link_modal_container .modal-center {
.value-custom {
display: flex;
flex-direction: row;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
margin-bottom: 15px;
width: auto;
width: 100%;
margin: 10px 0;
padding: 0px 5px 0px 5px;
}
#add_link_modal_container .modal-center .cbi-value-title {
display: inline-block;
width: 80px;
text-align: right;
.value-field-custom {
display: inline-flex;
align-items: center;
gap: 10px;
}
.value-title-custom {
font-size: 13px;
line-height: 28px;
margin: 0;
white-space: nowrap;
flex-shrink: 0;
}
#add_link_modal_container .modal-center .cbi-value-field {
display: flex;
justify-content: flex-start;
width: 200px;
text-align: right;
}
.custom-dropdown {
position: relative;
border: 1px solid #d9d9d9;
border-radius: 2px;
width: 200px;
width: 180px;
height: 28px;
font-size: 13px;
background: #fff;
cursor: pointer;
box-sizing: border-box;
height: 28px;
display: flex;
align-items: center;
}
.selected-display {
@@ -316,7 +312,9 @@ local api = require "luci.passwall2.api"
justify-content: space-between;
align-items: center;
padding: 0 8px;
width: 100%;
height: 100%;
box-sizing: border-box;
}
.selected-display:hover {
@@ -332,7 +330,7 @@ local api = require "luci.passwall2.api"
position: absolute;
top: 100%;
left: 0;
width: 100%;
width: 180px;
border: 1px solid #d9d9d9;
border-top: none;
box-shadow: 0 1px 3px rgba(0,0,0,0.15);
@@ -340,7 +338,7 @@ local api = require "luci.passwall2.api"
list-style: none;
margin: 0;
padding: 0;
max-height: 250px;
max-height: 200px;
overflow-y: auto;
overflow-x: hidden;
z-index: 100;
@@ -350,6 +348,7 @@ local api = require "luci.passwall2.api"
.dropdown-item {
padding: 4px 8px;
line-height: 20px;
cursor: pointer;
}
.dropdown-item.selected {
@@ -357,13 +356,17 @@ local api = require "luci.passwall2.api"
color: #fff;
}
.create-item-input::placeholder {
text-align: center;
}
.dropdown-item.custom-input input {
width: 100%;
max-width: 200px;
box-sizing: border-box;
padding: 3px;
font-size: 13px;
line-height: 20px;
border: 1px solid #ccc;
text-align: left;
}
</style>

View File

@@ -497,7 +497,7 @@ table td, .table .td {
<input class="btn cbi-button cbi-button-apply" type="button" value="<%:Use%>" id="apply_{{id}}" onclick="open_set_node_div('{{id}}')"/>
<input class="btn cbi-button cbi-button-add" type="button" value="<%:Copy%>" onclick="copy_node('{{id}}')"/>
<input class="btn cbi-button cbi-button-edit" type="button" value="<%:Edit%>" onclick="location.href='<%=api.url("node_config")%>/{{id}}'" alt="<%:Edit%>" title="<%:Edit%>">
<input class="btn cbi-button cbi-button-remove" type="button" value="<%:Del%>" onclick="del_node('{{id}}')" alt="<%:Del%>" title="<%:Del%>">
<input class="btn cbi-button cbi-button-remove" type="button" value="<%:Delete%>" onclick="del_node('{{id}}')" alt="<%:Delete%>" title="<%:Delete%>">
</div>
</td>
</tr>
@@ -684,4 +684,4 @@ table td, .table .td {
<input class="btn cbi-button cbi-button-remove" type="button" onclick="close_set_node_div()" value="<%:Close%>" />
</div>
</div>
</div>
</div>

View File

@@ -443,6 +443,26 @@ local function get_subscribe_info(cfgid, value)
end
end
-- 设置 ss 协议实现类型
local function set_ss_implementation(result)
if ss_type_default == "shadowsocks-libev" and has_ss then
result.type = "SS"
elseif ss_type_default == "shadowsocks-rust" and has_ss_rust then
result.type = 'SS-Rust'
elseif ss_type_default == "xray" and has_xray then
result.type = 'Xray'
result.protocol = 'shadowsocks'
result.transport = 'raw'
elseif ss_type_default == "sing-box" and has_singbox then
result.type = 'sing-box'
result.protocol = 'shadowsocks'
else
log("跳过 SS 节点,因未适配到 SS 核心程序,或未正确设置节点使用类型。")
return nil
end
return result
end
-- 处理数据
local function processData(szType, content, add_mode, group)
--log(content, add_mode, group)
@@ -606,21 +626,8 @@ local function processData(szType, content, add_mode, group)
return nil
end
elseif szType == "ss" then
if ss_type_default == "shadowsocks-libev" and has_ss then
result.type = "SS"
elseif ss_type_default == "shadowsocks-rust" and has_ss_rust then
result.type = 'SS-Rust'
elseif ss_type_default == "xray" and has_xray then
result.type = 'Xray'
result.protocol = 'shadowsocks'
result.transport = 'raw'
elseif ss_type_default == "sing-box" and has_singbox then
result.type = 'sing-box'
result.protocol = 'shadowsocks'
else
log("跳过 SS 节点,因未适配到 SS 核心程序,或未正确设置节点使用类型。")
return nil
end
result = set_ss_implementation(result)
if not result then return nil end
--SS-URI = "ss://" userinfo "@" hostname ":" port [ "/" ] [ "?" plugin ] [ "#" tag ]
--userinfo = websafe-base64-encode-utf8(method ":" password)
@@ -1075,7 +1082,8 @@ local function processData(szType, content, add_mode, group)
end
end
elseif szType == "ssd" then
result.type = "SS"
result = set_ss_implementation(result)
if not result then return nil end
result.address = content.server
result.port = content.port
result.password = content.password
@@ -1836,7 +1844,7 @@ local function parse_link(raw, add_mode, group, cfgid)
end
for _, v in ipairs(nodes) do
if v and not string.match(v, "^%s*$") then
if v and (szType == 'ssd' or not string.match(v, "^%s*$")) then
xpcall(function ()
local result
if szType == 'ssd' then