Skip to content

AnyRouter 自动签到 #147

AnyRouter 自动签到

AnyRouter 自动签到 #147

Workflow file for this run

name: AnyRouter 自动签到
on:
schedule:
- cron: '0 */6 * * *'
workflow_dispatch:
inputs:
debug:
description: 开启调试模式(截图 artifact、详细日志)
required: false
default: false
type: boolean
jobs:
checkin:
runs-on: ubuntu-latest
environment: production
env:
PYTHONIOENCODING: utf-8
PYTHONUNBUFFERED: 1
DEBUG_MODE: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug == 'true' && 'true' || 'false' }}
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b
with:
version: "latest"
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: 缓存 UV 依赖
uses: actions/cache@v5
id: uv-cache
with:
path: ~/.cache/uv
key: ${{ runner.os }}-uv-${{ hashFiles('pyproject.toml', 'uv.lock') }}
restore-keys: |
${{ runner.os }}-uv-
- name: 安装依赖
run: |
uv sync --frozen
echo "✅ 环境初始化完成"
- name: 安装系统依赖
run: |
sudo apt-get update
sudo apt-get install -y xvfb fonts-noto-color-emoji fonts-freefont-ttf fonts-unifont \
fonts-ipafont-gothic fonts-wqy-zenhei fonts-tlwg-loma-otf
- name: 缓存 CloakBrowser 二进制
uses: actions/cache@v5
id: cloakbrowser-cache
with:
path: ~/.cloakbrowser
key: ${{ runner.os }}-cloakbrowser-v1
restore-keys: |
${{ runner.os }}-cloakbrowser-
- name: 安装 CloakBrowser
run: |
uv run python -m cloakbrowser install
echo "✅ CloakBrowser 安装完成"
- name: 恢复余额历史缓存
uses: actions/cache@v5
with:
path: balance_hash.txt
key: balance-hash-${{ github.ref_name }}-${{ github.run_id }}
restore-keys: |
balance-hash-${{ github.ref_name }}-
balance-hash-
- name: 恢复浏览器 Profile 缓存
uses: actions/cache@v5
with:
path: .browser_profiles
key: browser-profiles-${{ runner.os }}-v1
restore-keys: |
browser-profiles-${{ runner.os }}-
- name: 配置代理
env:
PROXY_SUBSCRIPTION_URL: ${{ secrets.PROXY_SUBSCRIPTION_URL }}
PROXY_TEST_URL: https://www.google.com/generate_204
MIHOMO_VERSION: v1.19.27
PROXY_REQUIRED: false
run: bash scripts/setup_mihomo_proxy.sh
- name: 执行签到
env:
DEBUG_MODE: ${{ env.DEBUG_MODE }}
CHECKIN_HEADLESS: false
CHECKIN_HUMANIZE: true
CHECKIN_WAIT_TIMEOUT_MS: 120000
ANYROUTER_ACCOUNTS: ${{ secrets.ANYROUTER_ACCOUNTS }}
PROVIDERS: ${{ secrets.PROVIDERS }}
DINGDING_WEBHOOK: ${{ secrets.DINGDING_WEBHOOK }}
EMAIL_USER: ${{ secrets.EMAIL_USER }}
EMAIL_PASS: ${{ secrets.EMAIL_PASS }}
EMAIL_TO: ${{ secrets.EMAIL_TO }}
EMAIL_SENDER: ${{ secrets.EMAIL_SENDER }}
CUSTOM_SMTP_SERVER: ${{ secrets.CUSTOM_SMTP_SERVER }}
PUSHPLUS_TOKEN: ${{ secrets.PUSHPLUS_TOKEN }}
SERVERPUSHKEY: ${{ secrets.SERVERPUSHKEY }}
FEISHU_WEBHOOK: ${{ secrets.FEISHU_WEBHOOK }}
WEIXIN_WEBHOOK: ${{ secrets.WEIXIN_WEBHOOK }}
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
GOTIFY_URL: ${{ secrets.GOTIFY_URL }}
GOTIFY_TOKEN: ${{ secrets.GOTIFY_TOKEN }}
GOTIFY_PRIORITY: ${{ secrets.GOTIFY_PRIORITY }}
BARK_KEY: ${{ secrets.BARK_KEY }}
BARK_SERVER: ${{ secrets.BARK_SERVER }}
run: |
xvfb-run -a --server-args="-screen 0 1920x1080x24" uv run checkin.py
- name: 上传调试截图
if: always() && env.DEBUG_MODE == 'true'
env:
HTTP_PROXY: ''
HTTPS_PROXY: ''
uses: actions/upload-artifact@v4
with:
name: checkin-screenshots-${{ github.run_id }}
path: checkin_screenshots/
if-no-files-found: warn
include-hidden-files: true
retention-days: 14
- name: 停止代理
if: always()
run: bash scripts/stop_mihomo_proxy.sh
- name: 执行结果
if: always()
run: |
echo "签到任务执行完成"
echo "时间: $(date)"
if [ "${DEBUG_MODE}" = "true" ] && [ -d checkin_screenshots ] && [ "$(ls -A checkin_screenshots 2>/dev/null)" ]; then
echo "调试截图已上传为 artifact: checkin-screenshots-${{ github.run_id }}"
ls -la checkin_screenshots/
fi