name: CheckScores on: schedule: - cron: "*/30 * * * *" # 每30分钟执行一次 workflow_dispatch: inputs: force_push_message: description: "是否发送信息" required: false default: "False" options: True: "True" False: "False" jobs: CheckScores: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@main - name: Set up Python uses: actions/setup-python@main with: python-version: "*" - name: Install dependencies run: | pip install requests rsa pyquery - name: Configure Git run: | git config --global user.email "actions@github.com" git config --global user.name "GitHub Actions" - name: Fetch upstream changes run: | git remote add upstream https://github.com/NianBroken/ZFCheckScores.git git fetch upstream main - name: Backup local .txt files run: | mkdir backup cp *.txt backup/ || echo "No .txt files to backup" - name: Force push changes from upstream to current main branch run: | git checkout main git reset --hard upstream/main git push origin main --force || (for i in {1..10}; do echo "------" && echo "你需要手动同步上游分支" && echo "同步方法如下:" && echo "1. 打开你的仓库首页:https://github.com/${{ github.repository }}" && echo "2. 点击 Sync fork"&& echo "3. 点击 Update branch 或 Discard xxx commits"; done; exit 1) - name: Restore local .txt files and delete backup run: | cp backup/*.txt . || echo "No .txt files to restore" rm -rf backup - name: Run main.py env: URL: ${{ secrets.URL }} USERNAME: ${{ secrets.USERNAME }} PASSWORD: ${{ secrets.PASSWORD }} TOKEN: ${{ secrets.TOKEN }} GITHUB_EVENT_NAME: ${{ github.event_name }} GITHUB_TRIGGERING_ACTOR: ${{ github.triggering_actor }} REPOSITORY_NAME: ${{ github.repository }} GITHUB_SHA: ${{ github.sha }} GITHUB_WORKFLOW: ${{ github.workflow }} GITHUB_RUN_NUMBER: ${{ github.run_number }} GITHUB_RUN_ID: ${{ github.run_id }} FORCE_PUSH_MESSAGE: ${{ github.event.inputs.force_push_message }} run: | export BEIJING_TIME=$(TZ='Asia/Shanghai' date +'%Y-%m-%d %H:%M:%S:%3N') python main.py echo "------" if [ -z "$URL" ]; then echo "URL secret is empty!" fi if [ -z "$USERNAME" ]; then echo "USERNAME secret is empty!" fi if [ -z "$PASSWORD" ]; then echo "PASSWORD secret is empty!" fi if [ -z "$TOKEN" ]; then echo "TOKEN secret is empty!" fi echo "Force Push Message: ${{ github.event.inputs.force_push_message }} echo "Triggered By: ${{ github.event_name }}" echo "Run By: ${{ github.triggering_actor }}" echo "Repository Name: ${{ github.repository }}" echo "Commit SHA: ${{ github.sha }}" echo "Workflow Name: ${{ github.workflow }}" echo "Workflow Number: ${{ github.run_number }}" echo "Workflow ID: ${{ github.run_id }}" echo "Beijing Time: $BEIJING_TIME" - name: Delete __pycache__ folder run: | rm -rf __pycache__ - name: Add changes run: | git add . - name: Commit changes run: | git commit -m "Update from GitHub Actions" || true - name: Force push changes to main branch run: | git push origin main --force