AnyRouter 自动签到 #147
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |