diff --git a/.gitea/workflows/autograde.yml b/.gitea/workflows/autograde.yml index 66d6b42..718c7cf 100644 --- a/.gitea/workflows/autograde.yml +++ b/.gitea/workflows/autograde.yml @@ -4,14 +4,39 @@ on: push: branches: - main - workflow_dispatch: + tags: + - 'submit' # 学生打 submit 标签触发评分 + - 'submit-*' # 或 submit-v1, submit-final 等 + workflow_dispatch: # 手动触发 permissions: contents: read pull-requests: write jobs: + # 检查是否应该跳过 CI + check-skip: + runs-on: docker + container: + image: alpine:latest + outputs: + should_skip: ${{ steps.check.outputs.skip }} + steps: + - name: Check for skip CI + id: check + run: | + COMMIT_MSG="${{ github.event.head_commit.message }}" + # 检查是否包含 [skip ci], [ci skip], [no ci] 等 + if echo "$COMMIT_MSG" | grep -qiE '\[(skip ci|ci skip|no ci|skip actions)\]'; then + echo "skip=true" >> $GITHUB_OUTPUT + echo "⏭️ Skipping CI due to commit message: $COMMIT_MSG" + else + echo "skip=false" >> $GITHUB_OUTPUT + fi + grade: + needs: check-skip + if: needs.check-skip.outputs.should_skip != 'true' runs-on: docker container: image: gradle:9.0-jdk21