diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 05cc35d..a565cac 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -110,8 +110,8 @@ jobs: - name: Backup files run: | mkdir -p Backup - find . -type f -name "*.txt" -exec cp --parents {} ./Backup \; - find . -type f -name "*.yml" -exec cp --parents {} ./Backup \; + find . -type f -name "*.txt" -exec cp --parents {} Backup/ \; + find . -type f -name "*.yml" -exec cp --parents {} Backup/ \; - name: Restore files run: | diff --git a/Backup/.github/workflows/main.yml b/Backup/.github/workflows/main.yml deleted file mode 100644 index c118e5d..0000000 --- a/Backup/.github/workflows/main.yml +++ /dev/null @@ -1,215 +0,0 @@ -# 工作流的名称 -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: - # 同步上游分支 - SyncFork: - name: SyncFork - - # 在最新版的Ubuntu系统上运行 - runs-on: ubuntu-latest - - # 定义SyncFork的变量 - outputs: - MAIN_YML_FILES_INCONSISTENT: ${{ steps.compare_main_yml_files.outputs.MAIN_YML_FILES_INCONSISTENT }} - - 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" - - - name: Fetch upstream changes - run: | - # 添加上游仓库作为远程仓库,并获取上游仓库的main分支的最新更改 - REPO_NAME="NianBroken/ZFCheckScores" - REPO_URL="https://github.com/$REPO_NAME.git" - echo "Repo Url: $REPO_URL" - git remote add upstream "$REPO_URL" - git fetch upstream main - - - name: Compare main.yml files - id: compare_main_yml_files - run: | - tree -L 3 --dirsfirst - # 比对当前分支的main.yml文件与上游分支的main.yml文件是否一致 - if cmp -s .github/workflows/main.yml <(git show upstream/main:.github/workflows/main.yml); then - echo "MAIN_YML_FILES_INCONSISTENT=False" >> $GITHUB_OUTPUT - echo "main.yml file is consistent" - else - echo "MAIN_YML_FILES_INCONSISTENT=True" >> $GITHUB_OUTPUT - echo "main.yml file is inconsistent" - echo "::error title=main.yml file is inconsistent!" \ - "::The content of the 'main.yml' file in the current branch" \ - "does not match the content of the 'main.yml' file in the" \ - "upstream branch! You need to synchronize the upstream branch" \ - "manually! If you don't synchronize, there is a chance that" \ - "your code will have an uncontrollable fatal bug!" - fi - - - name: Backup files - run: | - mkdir -p Backup - find . -type f -name "*.txt" -exec cp --parents {} ./Backup \; - find . -type f -name "*.yml" -exec cp --parents {} ./Backup \; - - - name: Restore files - run: | - cp -r Backup/* . - - - name: Force push changes to main branch - run: | - # 将更改强制推送到main分支 - git add . - git commit -m "Update branch" || true - git push origin main --force - - # 检查成绩 - CheckScores: - name: CheckScores - - # SyncFork执行完成后运行 - needs: SyncFork - - # 在最新版的Ubuntu系统上运行 - runs-on: ubuntu-latest - - outputs: - BEIJING_TIME: ${{ steps.run_main_program.outputs.BEIJING_TIME }} - - steps: - # 配置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 }} - MAIN_YML_FILES_INCONSISTENT: ${{ needs.SyncFork.outputs.MAIN_YML_FILES_INCONSISTENT }} - 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 "main.yml Files Inconsistent: $MAIN_YML_FILES_INCONSISTENT" - 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 - - # 备份main分支 - BackupMain: - name: BackupMain - - # SyncFork执行完成后运行 - needs: CheckScores - - # 在最新版的Ubuntu系统上运行 - runs-on: ubuntu-latest - - steps: - # 使用GitHub Actions提供的动作来检出代码库 - - name: Checkout Repository - uses: actions/checkout@main - - - name: Backup Main to ThirtyMinutesAgo - run: | - # 备份main分支到OldMain分支 - echo "${{ needs.CheckScores.outputs.BEIJING_TIME }}" - git checkout -b OldMain|| git checkout OldMain - git push -f origin OldMain diff --git a/Backup/Backup/grade.txt b/Backup/Backup/grade.txt deleted file mode 100644 index b0c3520..0000000 --- a/Backup/Backup/grade.txt +++ /dev/null @@ -1 +0,0 @@ -4400f1a0083a801243f628f53a270491 \ No newline at end of file diff --git a/Backup/Backup/old_grade.txt b/Backup/Backup/old_grade.txt deleted file mode 100644 index b0c3520..0000000 --- a/Backup/Backup/old_grade.txt +++ /dev/null @@ -1 +0,0 @@ -4400f1a0083a801243f628f53a270491 \ No newline at end of file diff --git a/Backup/grade.txt b/Backup/grade.txt deleted file mode 100644 index b0c3520..0000000 --- a/Backup/grade.txt +++ /dev/null @@ -1 +0,0 @@ -4400f1a0083a801243f628f53a270491 \ No newline at end of file diff --git a/Backup/info.txt b/Backup/info.txt deleted file mode 100644 index 691b3c9..0000000 --- a/Backup/info.txt +++ /dev/null @@ -1 +0,0 @@ -09975406912bb31cacc59f2573b68768 \ No newline at end of file diff --git a/Backup/old_grade.txt b/Backup/old_grade.txt deleted file mode 100644 index b0c3520..0000000 --- a/Backup/old_grade.txt +++ /dev/null @@ -1 +0,0 @@ -4400f1a0083a801243f628f53a270491 \ No newline at end of file