mirror of
https://github.com/bolucat/Archive.git
synced 2025-12-24 13:28:37 +08:00
Update On Tue Nov 11 19:39:22 CET 2025
This commit is contained in:
@@ -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')
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user