# 工作流的名称 name: CheckScores # 工作流运行的名称 run-name: ${{ github.workflow }} ${{ github.sha }} # 指定此工作流的触发器 on: schedule: - cron: "*/30 * * * *" # 每30分钟自动执行一次 workflow_dispatch: # 可以手动执行 inputs: force_push_message: # 如果为True,则当次运行时无论成绩是否已更新,都会进行推送 description: "Whether or not to force a push message?" required: true default: "False" type: choice options: - "True" - "False" jobs: # 检查成绩 CheckScores: name: CheckScores # 在最新版的Ubuntu系统上运行 runs-on: ubuntu-latest outputs: BEIJING_TIME: ${{ steps.run_main_program.outputs.BEIJING_TIME }} steps: # 使用GitHub Actions提供的动作来检出代码库 - name: Checkout Repository uses: actions/checkout@main - name: Configure Git run: | # 配置Git用户信息 git config --global user.email "actions@github.com" git config --global user.name "GitHub Actions" # 配置Python环境 - name: Set up Python uses: actions/setup-python@main with: python-version: "*" - name: Install dependencies run: | # 使用pip安装项目的依赖项 pip install requests rsa pyquery - name: Run main program id: run_main_program env: FORCE_PUSH_MESSAGE: ${{ github.event.inputs.force_push_message }} GITHUB_ACTIONS: ${{github.actions}} 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 }} run: | # 运行主程序 # 判断是否需要强制推送信息 if [ -z "${{ github.event.inputs.force_push_message }}" ]; then export FORCE_PUSH_MESSAGE="False" else export FORCE_PUSH_MESSAGE="${{ github.event.inputs.force_push_message }}" fi export BEIJING_TIME="$(TZ='Asia/Shanghai' date +'%Y-%m-%d %H:%M:%S:%3N')" echo "BEIJING_TIME=$BEIJING_TIME" >> $GITHUB_OUTPUT python main.py echo "------" # 判断环境变量是否为空 if [ -z "$URL" ]; then echo "URL Secret is empty!" echo "::error title=URL Secret is empty!" \ "::Your 'URL' Secret is not filled with any" \ "information, so your program will not work!" fi if [ -z "$USERNAME" ]; then echo "USERNAME Secret is empty!" echo "::error title=USERNAME Secret is empty!" \ "::Your 'USERNAME' Secret is not filled with any" \ "information, so your program will not work!" fi if [ -z "$PASSWORD" ]; then echo "PASSWORD Secret is empty!" echo "::error title=PASSWORD Secret is empty!" \ "::Your 'PASSWORD' Secret is not filled with any" \ "information, so your program will not work!" fi if [ -z "$TOKEN" ]; then echo "TOKEN Secret is empty!" echo "::error title=TOKEN Secret is empty!" \ "::Your 'TOKEN' Secret is not filled with any" \ "information, so your program will not work!" fi # 方便通过截图快速定位到用户 echo "Force Push Message: $FORCE_PUSH_MESSAGE" echo "Triggered By: $GITHUB_EVENT_NAME" echo "Run By: $GITHUB_TRIGGERING_ACTOR" echo "Repository Name: $REPOSITORY_NAME" 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: | # 删除__pycache__文件夹 rm -rf __pycache__ - name: Force push changes to main branch run: | # 将更改强制推送到main分支 git add . git commit -m "Update from GitHub Actions" || true git push origin main --force