From b979960828bd791bbe51dff2fc65d89d1527a117 Mon Sep 17 00:00:00 2001 From: sit002 Date: Tue, 2 Dec 2025 16:04:41 +0800 Subject: [PATCH] feat: add [skip ci] support and tag trigger - Skip CI when commit message contains [skip ci] - Add tag trigger: push 'submit' or 'submit-*' tag to grade - Prevents unnecessary CI runs during initialization --- .gitea/workflows/autograde.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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