142 lines
6.5 KiB
YAML
142 lines
6.5 KiB
YAML
name: app_update
|
|
on:
|
|
schedule:
|
|
- cron: '0 23 * * *' # 每天北京时间早上7点执行
|
|
push:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- '.gitea/workflows/app_update.yml'
|
|
workflow_dispatch: # 支持手动触发
|
|
|
|
jobs:
|
|
update-rules:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: 并行下载并处理所有应用
|
|
run: |
|
|
mkdir -p app/ tmp/x86_64 tmp/aarch64 tmp/x86_64/7z tmp/aarch64/7z tmp/x86_64/micro tmp/aarch64/micro
|
|
|
|
echo "开始并行下载..."
|
|
|
|
# --- 任务 1: Zellij ---
|
|
(
|
|
echo "Starting Zellij..."
|
|
curl -L "https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz" \
|
|
-o "zellij-x86_64-unknown-linux-musl.tar.gz" \
|
|
--fail --silent --show-error && \
|
|
tar -xf zellij-x86_64-unknown-linux-musl.tar.gz -C tmp/x86_64/
|
|
mv tmp/x86_64/zellij app/zellij_x86_64
|
|
|
|
curl -L "https://github.com/zellij-org/zellij/releases/latest/download/zellij-aarch64-unknown-linux-musl.tar.gz" \
|
|
-o "zellij-aarch64-unknown-linux-musl.tar.gz" \
|
|
--fail --silent --show-error && \
|
|
tar -xf zellij-aarch64-unknown-linux-musl.tar.gz -C tmp/aarch64/ && \
|
|
mv tmp/aarch64/zellij app/zellij_aarch64
|
|
echo "Finished Zellij"
|
|
) &
|
|
|
|
# --- 任务 2: 7-zip ---
|
|
(
|
|
echo "Starting 7-zip..."
|
|
VERSION_7Z=$(curl -s "https://api.github.com/repos/ip7z/7zip/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
|
|
|
X86_64_7Z_URL="https://github.com/ip7z/7zip/releases/latest/download/7z${VERSION_7Z/./}-linux-x64.tar.xz"
|
|
AARCH64_7Z_URL="https://github.com/ip7z/7zip/releases/latest/download/7z${VERSION_7Z/./}-linux-arm64.tar.xz"
|
|
WINDOWS_7Z_URL="https://github.com/ip7z/7zip/releases/latest/download/7z${VERSION_7Z/./}.exe"
|
|
|
|
curl -L "${X86_64_7Z_URL}" -o "7z-x86_64.tar.xz" --fail --silent --show-error
|
|
curl -L "${AARCH64_7Z_URL}" -o "7z-aarch64.tar.xz" --fail --silent --show-error
|
|
curl -L "${WINDOWS_7Z_URL}" -o "app/7z_windows.exe" --fail --silent --show-error
|
|
|
|
tar -xf 7z-x86_64.tar.xz -C tmp/x86_64/7z
|
|
tar -xf 7z-aarch64.tar.xz -C tmp/aarch64/7z
|
|
|
|
mv tmp/x86_64/7z/7zz app/7z_x86_64
|
|
mv tmp/aarch64/7z/7zz app/7z_aarch64
|
|
echo "Finished 7-zip (${VERSION_7Z})"
|
|
) &
|
|
|
|
# --- 任务 3: Shadowsocks-Rust ---
|
|
(
|
|
echo "Starting SS-Rust..."
|
|
SS_RUST_VERSION=$(curl -s "https://api.github.com/repos/shadowsocks/shadowsocks-rust/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
|
SS_RUST_URL="https://github.com/shadowsocks/shadowsocks-rust/releases/latest/download/shadowsocks-${SS_RUST_VERSION}.x86_64-unknown-linux-musl.tar.xz"
|
|
|
|
curl -L "${SS_RUST_URL}" -o "shadowsocks.tar.xz" --fail --silent --show-error
|
|
tar -xf shadowsocks.tar.xz -C tmp/x86_64/
|
|
mv tmp/x86_64/ssserver app/
|
|
mv tmp/x86_64/sslocal app/
|
|
echo "Finished SS-Rust (${SS_RUST_VERSION})"
|
|
) &
|
|
|
|
# --- 任务 4: ImageGlass ---
|
|
(
|
|
echo "Starting ImageGlass..."
|
|
IG_VERSION=$(curl -s "https://api.github.com/repos/d2phap/ImageGlass/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
|
IG_URL="https://github.com/d2phap/ImageGlass/releases/latest/download/ImageGlass_${IG_VERSION}_x64.msi"
|
|
|
|
curl -L "${IG_URL}" -o "app/ImageGlass_x64.msi" --fail --silent --show-error
|
|
echo "Finished ImageGlass (${IG_VERSION})"
|
|
) &
|
|
|
|
# --- 任务 5: Frp ---
|
|
(
|
|
echo "Starting Frp..."
|
|
FRP_VERSION=$(curl -s "https://api.github.com/repos/fatedier/frp/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
|
FRP_URL="https://github.com/fatedier/frp/releases/latest/download/frp_${FRP_VERSION#v}_linux_amd64.tar.gz"
|
|
|
|
curl -L "${FRP_URL}" -o "frp.tar.gz" --fail --silent --show-error
|
|
tar -zxf frp.tar.gz -C tmp/x86_64/
|
|
mv tmp/x86_64/frp_${FRP_VERSION#v}_linux_amd64/frps app/
|
|
mv tmp/x86_64/frp_${FRP_VERSION#v}_linux_amd64/frpc app/
|
|
echo "Finished Frp (${FRP_VERSION})"
|
|
) &
|
|
|
|
# --- 任务 6: Dufs ---
|
|
(
|
|
echo "Starting Dufs..."
|
|
DUFS_VERSION=$(curl -s "https://api.github.com/repos/sigoden/dufs/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
|
DUFS_URL="https://github.com/sigoden/dufs/releases/latest/download/dufs-${DUFS_VERSION}-x86_64-unknown-linux-musl.tar.gz"
|
|
|
|
curl -L "${DUFS_URL}" -o "dufs.tar.gz" --fail --silent --show-error
|
|
tar -xf dufs.tar.gz -C tmp/x86_64/
|
|
mv tmp/x86_64/dufs app/
|
|
echo "Finished Dufs (${DUFS_VERSION})"
|
|
) &
|
|
|
|
# --- 任务 7: Micro ---
|
|
(
|
|
echo "Starting Micro..."
|
|
MICRO_VERSION=$(curl -s "https://api.github.com/repos/zyedidia/micro/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
|
|
|
X86_64_MICRO_URL="https://github.com/zyedidia/micro/releases/latest/download/micro-${MICRO_VERSION#v}-linux64-static.tar.gz"
|
|
AARCH64_MICRO_URL="https://github.com/zyedidia/micro/releases/latest/download/micro-${MICRO_VERSION#v}-linux-arm64.tar.gz"
|
|
|
|
curl -L "${X86_64_MICRO_URL}" -o "micro-x86_64.tar.gz" --fail --silent --show-error
|
|
curl -L "${AARCH64_MICRO_URL}" -o "micro-aarch64.tar.gz" --fail --silent --show-error
|
|
|
|
tar -xvf micro-x86_64.tar.gz -C tmp/x86_64/micro
|
|
tar -xvf micro-aarch64.tar.gz -C tmp/aarch64/micro
|
|
|
|
mv tmp/x86_64/micro/micro-${MICRO_VERSION#v}/micro app/micro_x86_64
|
|
mv tmp/aarch64/micro/micro-${MICRO_VERSION#v}/micro app/micro_aarch64
|
|
echo "Finished Micro (${MICRO_VERSION})"
|
|
) &
|
|
|
|
# 等待所有后台任务完成
|
|
wait
|
|
echo "所有下载任务完成!"
|
|
|
|
- name: 提交更改
|
|
run: |
|
|
git config --local user.email "gitea-actions[bot]@users.noreply.nvme.cc"
|
|
git config --local user.name "gitea-actions[bot]"
|
|
git add ./app
|
|
git diff --cached --quiet || git commit -m "Update rules: $(TZ=Asia/Shanghai date +'%Y-%m-%d %H:%M:%S')"
|
|
git push
|