Add scheduled subset sync workflow

This commit is contained in:
2026-03-23 15:27:56 +08:00
parent 7c6dc58579
commit 01c2fd3292
4 changed files with 149 additions and 10 deletions

View File

@@ -3,28 +3,34 @@ set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SURGE_DIR="$ROOT_DIR/rule/Surge"
SINGBOX_DIR="$ROOT_DIR/rule/sing-box"
UPSTREAM_BASE="https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge"
GITEA_ENV_FILE="$ROOT_DIR/../gitea/.env"
LOCAL_SYNC_ENV_FILE="$ROOT_DIR/.sync.env"
if [[ ! -f "$GITEA_ENV_FILE" ]]; then
echo "missing Gitea env file: $GITEA_ENV_FILE" >&2
exit 1
if [[ -f "$GITEA_ENV_FILE" ]]; then
source "$GITEA_ENV_FILE"
fi
source "$GITEA_ENV_FILE"
if [[ -f "$LOCAL_SYNC_ENV_FILE" ]]; then
source "$LOCAL_SYNC_ENV_FILE"
fi
GITEA_REPO_OWNER="${GITEA_REPO_OWNER:-admin}"
GITEA_REPO_OWNER="${GITEA_REPO_OWNER:-yuanzhen869}"
GITEA_REPO_NAME="${GITEA_REPO_NAME:-ios-rule-script-subset}"
GITEA_SYNC_USERNAME="${GITEA_SYNC_USERNAME:-$GITEA_ADMIN_USERNAME}"
GITEA_SYNC_PASSWORD="${GITEA_SYNC_PASSWORD:-${GITEA_SYNC_TOKEN:-$GITEA_ADMIN_PASSWORD}}"
GITEA_SYNC_USERNAME="${GITEA_SYNC_USERNAME:-${GITEA_ADMIN_USERNAME:-yuanzhen869}}"
GITEA_SYNC_EMAIL="${GITEA_SYNC_EMAIL:-${GITEA_ADMIN_EMAIL:-yuanzhen869@gmail.com}}"
GITEA_SYNC_PASSWORD="${GITEA_SYNC_PASSWORD:-${GITEA_SYNC_TOKEN:-${GITEA_ADMIN_PASSWORD:-}}}"
if [[ -z "${GITEA_SYNC_PASSWORD}" ]]; then
echo "missing push credential: set GITEA_SYNC_TOKEN or GITEA_ADMIN_PASSWORD" >&2
exit 1
fi
GITEA_REMOTE_URL="https://${GITEA_SYNC_USERNAME}:${GITEA_SYNC_PASSWORD}@git.halonice.com/${GITEA_REPO_OWNER}/${GITEA_REPO_NAME}.git"
mkdir -p "$SURGE_DIR"
mkdir -p "$SINGBOX_DIR"
while IFS='|' read -r target src; do
[[ -z "$target" ]] && continue
@@ -42,6 +48,8 @@ ChinaIPs.list|ChinaIPs/ChinaIPs.list
Proxy.list|Proxy/Proxy.list
EOF
python3 "$ROOT_DIR/scripts/build_singbox_rules.py"
cd "$ROOT_DIR"
if [[ ! -d .git ]]; then
@@ -58,6 +66,6 @@ if git diff --cached --quiet; then
exit 0
fi
git -c user.name="$GITEA_ADMIN_USERNAME" -c user.email="$GITEA_ADMIN_EMAIL" commit -m "Sync subset from blackmatrix7/ios_rule_script" >/dev/null
git -c user.name="$GITEA_SYNC_USERNAME" -c user.email="$GITEA_SYNC_EMAIL" commit -m "Sync subset from blackmatrix7/ios_rule_script" >/dev/null
git push origin main