Files
ShellCrash/.github/workflows/bin_update.yml

126 lines
4.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: bin_update
on:
schedule:
- cron: "0 18 * * *" # UTC 18 = 北京时间次日凌晨 2 点
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout update branch (ignore if missing)
uses: actions/checkout@v5
with:
ref: update
fetch-depth: 1
persist-credentials: false # 禁用默认凭据(我们用 token push
- name: Apt Update & Update CA
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update
sudo apt-get -y install unzip curl git tar ca-certificates
sudo update-ca-certificates
cp -f /etc/ssl/certs/ca-certificates.crt bin/fix/ca-certificates.crt
- name: Update Dashboard
run: |
##########################################################
mkdir -p bin/dashboard
cd bin/dashboard
echo 下载meta魔改yacd面板
curl -kfSL -o meta_yacd.zip https://github.com/MetaCubeX/Yacd-meta/archive/gh-pages.zip
echo 下载meta-xd面板
curl -kfSL -o meta_xd.zip https://github.com/MetaCubeX/metacubexd/archive/gh-pages.zip
echo 下载zashboard面板
curl -kfSL -o zashboard.zip https://github.com/Zephyruso/zashboard/releases/latest/download/dist-cdn-fonts.zip
unzip -o meta_yacd.zip > /dev/null
cd Yacd-meta-gh-pages
find -name '*.map' | xargs rm -rf
rm -rf report.html
tar -zcvf meta_yacd.tar.gz * > /dev/null
mv -f meta_yacd.tar.gz ../
cd ..
unzip -o meta_xd.zip > /dev/null
cd metacubexd-gh-pages
find -name '*.ttf' | xargs rm -rf
tar -zcvf meta_xd.tar.gz * > /dev/null
mv -f meta_xd.tar.gz ../
cd ..
unzip -o zashboard.zip > /dev/null
cd dist
echo 'board.zash.run.place' > CNAME
tar -zcvf zashboard.tar.gz * > /dev/null
mv -f zashboard.tar.gz ../
cd ..
rm -rf meta_yacd.zip meta_xd.zip zashboard.zip
rm -rf clash-dashboard-gh-pages yacd-gh-pages Razord-meta-gh-pages
rm -rf Yacd-meta-gh-pages metacubexd-gh-pages dist
echo 面板更新完成!
- name: Update Geodata
run: |
cd bin
curl -kfSL -o geodata/cn_mini.mmdb https://raw.githubusercontent.com/Hackl0us/GeoIP2-CN/release/Country.mmdb
curl -kfSL -o geodata/china_ip_list.txt https://raw.githubusercontent.com/ChanthMiao/China-IPv4-List/release/cn.txt
curl -kfSL -o geodata/china_ipv6_list.txt https://raw.githubusercontent.com/ChanthMiao/China-IPv6-List/release/cn6.txt
curl -kfSL -o geodata/geosite.dat https://github.com/DustinWin/ruleset_geodata/releases/download/mihomo-geodata/geosite-all.dat
curl -kfSL -o geodata/srs_geoip_cn.srs https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/cnip.srs
curl -kfSL -o geodata/srs_geosite_cn.srs https://github.com/DustinWin/ruleset_geodata/releases/download/sing-box-ruleset/cn.srs
curl -kfSL -o geodata/mrs_geosite_cn.mrs https://github.com/DustinWin/ruleset_geodata/releases/download/mihomo-ruleset/cn.mrs
# 下载规则集
curl -kfSL -o mihomo-ruleset.zip https://github.com/DustinWin/ruleset_geodata/archive/refs/heads/mihomo-ruleset.zip
curl -kfSL -o sing-box-ruleset.zip https://github.com/DustinWin/ruleset_geodata/archive/refs/heads/sing-box-ruleset.zip
# 解压
unzip -o mihomo-ruleset.zip > /dev/null
unzip -o sing-box-ruleset.zip > /dev/null
# 处理 mihomo 规则
cd ruleset_geodata-mihomo-ruleset
find . -name '*.list' -delete
tar -zcvf mrs.tar.gz . > /dev/null
mv -f mrs.tar.gz ../geodata/
cd ..
# 处理 sing-box 规则
cd ruleset_geodata-sing-box-ruleset
find . -name '*.json' -delete
tar -zcvf srs.tar.gz . > /dev/null
mv -f srs.tar.gz ../geodata/
cd ..
# 删除目录
rm -rf ruleset_geodata-mihomo-ruleset
rm -rf ruleset_geodata-sing-box-ruleset
sed -i "s/GeoIP_v=.*/GeoIP_v=$(date '+%Y%m%d')/" version
echo 数据库及根证书文件更新完成!
- name: Rebuild update branch with no history
run: |
# 彻底删除历史记录
rm -rf .git
# 重新初始化仓库
git init
git config user.email "github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
git add .
git commit -m "自动更新最新Dashboard、Geodata数据库及根证书"
# 强制推送覆盖 update 分支
git branch -M update
git remote add origin "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git"
git push -f origin update
- name: Cleanup Workflow
uses: Mattraks/delete-workflow-runs@main
with:
retain_days: 1
keep_minimum_runs: 2